Class Parser


back
readBlock    | stmts saveTemps |
saveTemps <- tempNames asList. " copy "
self nextLex.
tokenType = $:
ifTrue: [ self readBlockTemporaries ].
stmts <- self readStatementList.
"tempNames <- saveTemps."
(saveTemps size + 1 to: tempNames size) do: [:i | tempNames at: i put: ' '].
tokenType = $]
ifTrue: [ self nextLex.
^ BlockNode new statements: stmts
temporaryLocation: saveTemps size ]
ifFalse: [ self error: 'unterminated block']