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

marcel.taeumel
Hi, everyone!

I am trying to load SOUL in the trunk:

MCHttpRepository
        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.
?termPointerList
        listDo:
                [:aVarPointer |
                | var |
                var := (Variable name: ''temp'') setAddress: count.
                newCollection add: var.
                var
                        unifyWith: aVarPointer smalltalkValue term
                        inEnv: ?env
                        myIndex: startIndex
                        hisIndex: aVarPointer smalltalkValue envIndex
                        inSource: false.
                count := count + 1].
?head = ListTerm ListTermFunctor smalltalkValue
        ifTrue:
                [self halt.
                newCollection add: EmptyListConstant new.
                newTerm := SoulFactory current makeList new makeListCompound: newCollection]
        ifFalse:
                [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.
true'

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

Any ideas how to fix this?

Best,
Marcel


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