Added support for local variables and #whileTrue: special form
Allocate all local variables in a special basic block named
`allocas`. Added support for #whileTrue: special form.
"{ Package: 'jv:tea/compiler' }"
"{ NameSpace: Smalltalk }"
RBMessageNode subclass:#TSpecialFormNode
instanceVariableNames:''
classVariableNames:''
poolDictionaries:''
category:'Languages-Tea-Compiler-AST'
!
!TSpecialFormNode class methodsFor:'documentation'!
documentation
"
TSpecialNode
[author:]
Jan Vrany <jan.vrany@fit.cvut.cz>
[instance variables:]
[class variables:]
[see also:]
"
! !
!TSpecialFormNode class methodsFor:'instance creation'!
receiver: receiver selectorParts: keywordTokens arguments: arguments
^self new
receiver: receiver
selectorParts: keywordTokens
arguments: arguments
"Created: / 14-09-2015 / 12:27:53 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!TSpecialFormNode class methodsFor:'accessing'!
specialSelectors
^ #( ifTrue: ifTrue:ifFalse: whileTrue: )
"Created: / 14-09-2015 / 12:22:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!TSpecialFormNode methodsFor:'testing'!
isSpecialFormNode
^ true
"Created: / 14-09-2015 / 12:16:25 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !
!TSpecialFormNode methodsFor:'visiting'!
acceptVisitor: aProgramNodeVisitor
^aProgramNodeVisitor acceptSpecialFormNode: self
"Created: / 14-09-2015 / 12:09:26 / Jan Vrany <jan.vrany@fit.cvut.cz>"
! !