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