|
Class: CascadeNode
Object
|
+--ParseNode
|
+--MessageNode
|
+--CascadeNode
- Package:
- stx:libcomp
- Category:
- System-Compiler-Support
- Version:
- rev:
1.36
date: 2018/03/26 13:54:34
- user: stefan
- file: CascadeNode.st directory: libcomp
- module: stx stc-classLibrary: libcomp
- Author:
- Claus Gittinger
node for parse-trees, representing cascade message sends
This is a helper class for the compiler.
*VMMaker-C translation
-
asTranslatorNodeIn: aTMethod
-
make a CCodeGenerator equivalent of me
-
realReceiver
-
return the real receiver
(sigh; ST/X encodes things differently)
code generation
-
codeForCascadeOn: aStream inBlock: b for: aCompiler
-
the old code could lead to a recursion error with
long cascades;
the new code does not.
usage example(s):
receiver codeForCascadeOn:aStream inBlock:b for:aCompiler.
|
-
codeOn: aStream inBlock: b valueNeeded: valueNeeded for: aCompiler
-
enumerating
-
messages
-
helper for parse tree walking
-
nodeDo: anEnumerator
-
helper for parse tree walking
evaluation
-
evaluateForCascadeIn: anEnvironment
-
new code: avoids recursion error for long cascades
usage example(s):
t := receiver evaluateForCascadeIn:anEnvironment.
|
-
evaluateIn: anEnvironment
-
t perform:selector. ^ t
printing & storing
-
printMessagePartOn: aStream indent: i
-
-
printOn: aStream indent: i
-
new code:
usage example(s):
receiver printOn:aStream indent:i.
|
testing
-
isCascade
-
visiting
-
acceptVisitor: aVisitor
-
Double dispatch back to the visitor, passing my type encoded in
the selector (visitor pattern)
|