Loading SOUL in Trunk

Previous Topic Next Topic
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view

Loading SOUL in Trunk

Hi, everyone!

I am trying to load SOUL in the trunk:

        location: 'http://ss3.gemstone.com/ss/SOUL'
        user: ''
        password: ''

There is a serious name clash with "Environment" but once fixed [1], it comes to the place were the Smalltalk term parser is not able to parse this term:

'| newCollection newTerm count startIndex |
newCollection := OrderedCollection new.
count := 0.
startIndex := ?env startUnify: ?length + 1.
                [:aVarPointer |
                | var |
                var := (Variable name: ''temp'') setAddress: count.
                newCollection add: var.
                        unifyWith: aVarPointer smalltalkValue term
                        inEnv: ?env
                        myIndex: startIndex
                        hisIndex: aVarPointer smalltalkValue envIndex
                        inSource: false.
                count := count + 1].
?head = ListTerm ListTermFunctor smalltalkValue
                [self halt.
                newCollection add: EmptyListConstant new.
                newTerm := SoulFactory current makeList new makeListCompound: newCollection]
                [newTerm := SoulFactory current makeCompound
                        functor: ?head soulUp
                        termSequence: (TermSequence terms: newCollection)
                        astLink: ((HiddenVariable name: SoulFactory uniqueName) setAddress: ?length)].
newTerm definitionRepository: ?rep.
?TermPointer term
        unifyWith: newTerm
        inEnv: ?env
        myIndex: ?TermPointer envIndex
        hisIndex: startIndex
        inSource: true.

It fails at the first "?env". It uses SmaCC and the SmalltalkTermParser looks like generated code.

Any ideas how to fix this?


[1] Use this SOUL-Kernel-mt.mcz and add an empty SouleMethodCompiler >> #parser: .
[2] http://www.squeaksource.com/SmaccDevelopment