| java.lang.Object org.antlr.runtime.tree.RewriteRuleElementStream org.antlr.runtime.tree.RewriteRuleSubtreeStream
Method Summary | |
protected Object | dup(Object el) | public Object | nextNode() 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. |
RewriteRuleSubtreeStream | public RewriteRuleSubtreeStream(TreeAdaptor adaptor, String elementDescription, Object oneElement)(Code) | | Create a stream with one element
|
RewriteRuleSubtreeStream | public RewriteRuleSubtreeStream(TreeAdaptor adaptor, String elementDescription, List elements)(Code) | | Create a stream, but feed off an existing list
|
nextNode | public Object nextNode()(Code) | | 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.
|
|
|