Package | org.antlr.runtime.tree |
Class | public class RewriteRuleSubtreeStream |
Inheritance | RewriteRuleSubtreeStream ![]() |
Method | Defined by | ||
---|---|---|---|
RewriteRuleSubtreeStream(adaptor:TreeAdaptor, elementDescription:String, element:Object = null)
| RewriteRuleSubtreeStream | ||
![]() |
add(el:Object):void
| RewriteRuleElementStream | |
nextNode():Object
Treat next element as a single node even if it's a subtree.
| RewriteRuleSubtreeStream | ||
![]() |
nextTree():Object
Return the next element in the stream.
| RewriteRuleElementStream | |
![]() |
reset():void
Reset the condition of this stream so that it appears we have
not consumed any of its elements.
| RewriteRuleElementStream |
Method | Defined by | ||
---|---|---|---|
![]() |
_next():Object
do the work of getting the next element, making sure that it's
a tree node or subtree.
| RewriteRuleElementStream | |
dup(el:Object):Object
| RewriteRuleSubtreeStream | ||
![]() |
toTree(el:Object):Object
Ensure stream emits trees; tokens must be converted to AST nodes.
| RewriteRuleElementStream |
RewriteRuleSubtreeStream | () | constructor |
public function RewriteRuleSubtreeStream(adaptor:TreeAdaptor, elementDescription:String, element:Object = null)
Parameters
adaptor:TreeAdaptor |
|
elementDescription:String |
|
element:Object (default = null )
|
dup | () | method |
protected override function dup(el:Object):Object
Parameters
el:Object |
Object |
nextNode | () | method |
public function nextNode():Object
Treat next element as a single node even if it's a subtree. This is used instead of next() when the result has to be a tree root node. Also prevents us from duplicating recently-added children; e.g., ^(type ID)+ adds ID to type and then 2nd iteration must dup the type node, but ID has been added. Referencing a rule result twice is ok; dup entire tree as we can't be adding trees as root; e.g., expr expr. Hideous code duplication here with super.next(). Can't think of a proper way to refactor. This needs to always call dup node and super.next() doesn't know which to call: dup node or dup tree.
ReturnsObject |