|
Class: RBOptimizedNode
Object
|
+--RBProgramNode
|
+--RBStatementNode
|
+--RBValueNode
|
+--RBOptimizedNode
- Package:
- stx:goodies/refactoryBrowser/parser
- Category:
- Refactory-AST-Nodes
- Version:
- rev:
1.11
date: 2021/01/20 14:49:09
- user: cg
- file: RBOptimizedNode.st directory: goodies/refactoryBrowser/parser
- module: stx stc-classLibrary: parser
BROptimizedNode is an AST node that represents IBM's ##(...) expressions. These expressions are evaluated at compile time and directly inserted into the method.
Instance Variables:
body <BRSequenceNode> the body of the expression
left <Integer> position of the ##( characters
right <Integer> position of )
instance creation
-
> body:">body: aSequenceNode
-
-
> left:body:right:">left: leftInteger body: aSequenceNode right: rightInteger
-
accessing
-
> body">body
-
-
> body:">body: stmtsNode
-
-
> children">children
-
-
> precedence">precedence
-
-
> startWithoutParentheses">startWithoutParentheses
-
-
> stopWithoutParentheses">stopWithoutParentheses
-
comparing
-
> =">= anObject
-
(comment from inherited method)
return true if the receiver and the arg have the same structure.
Notice:
This method is partially open coded (inlined) by the compiler(s)
identical objects are always considered equal.
redefining it may not work as expected.
-
> equalTo:withMapping:">equalTo: anObject withMapping: aDictionary
-
return true, if I am equal to another node, with a given variable name mapping.
Side effect: update the mapping dictionary as required to reflect a matching mapping (if possible)
-
> equalTo:withSelectorMapping:">equalTo: anObject withSelectorMapping: aDictionary
-
return true, if I am equal to another node, with a given selector name mapping.
Side effect: update the mapping dictionary as required to reflect a matching mapping (if possible)
-
> hash">hash
-
(comment from inherited method)
return an Integer useful as a hash key for the receiver.
This hash should return same values for objects with same
contents (i.e. use this to hash on structure)
-
> semanticallyEqualTo:withMapping:">semanticallyEqualTo: anObject withMapping: aDictionary
-
return true, if I am semantically equal to another node, with a given variable name mapping.
Side effect: update the mapping dictionary as required to reflect a matching mapping (if possible)
enumeration
-
> variableNodesDo:">variableNodesDo: aBlock
-
evaluate a Block for all variable nodes
initialize-release
-
> left:body:right:">left: leftInteger body: aSequenceNode right: rightInteger
-
matching
-
> copyInContext:">copyInContext: aDictionary
-
-
> match:inContext:">match: aNode inContext: aDictionary
-
replacing
-
> replaceNode:withNode:">replaceNode: aNode withNode: anotherNode
-
testing
-
> isImmediate">isImmediate
-
visitor
-
> acceptVisitor:">acceptVisitor: aProgramNodeVisitor
-
|