| Package | org.antlr.runtime.tree |
| Class | public class RewriteRuleSubtreeStream |
| Inheritance | RewriteRuleSubtreeStream RewriteRuleElementStream |
| 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):ObjectParameters
el:Object |
Object |
| nextNode | () | method |
public function nextNode():ObjectTreat 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 |