

Public Member Functions | |
| RewriteRuleSubtreeStream (TreeAdaptor adaptor, String elementDescription) | |
| RewriteRuleSubtreeStream (TreeAdaptor adaptor, String elementDescription, Object oneElement) | |
| RewriteRuleSubtreeStream (TreeAdaptor adaptor, String elementDescription, List elements) | |
| Object | nextNode () |
Protected Member Functions | |
| Object | dup (Object el) |
Definition at line 32 of file RewriteRuleSubtreeStream.java.
| org.antlr.runtime.tree.RewriteRuleSubtreeStream.RewriteRuleSubtreeStream | ( | TreeAdaptor | adaptor, | |
| String | elementDescription | |||
| ) |
Definition at line 34 of file RewriteRuleSubtreeStream.java.
| org.antlr.runtime.tree.RewriteRuleSubtreeStream.RewriteRuleSubtreeStream | ( | TreeAdaptor | adaptor, | |
| String | elementDescription, | |||
| Object | oneElement | |||
| ) |
Create a stream with one element
Definition at line 39 of file RewriteRuleSubtreeStream.java.
| org.antlr.runtime.tree.RewriteRuleSubtreeStream.RewriteRuleSubtreeStream | ( | TreeAdaptor | adaptor, | |
| String | elementDescription, | |||
| List | elements | |||
| ) |
Create a stream, but feed off an existing list
Definition at line 47 of file RewriteRuleSubtreeStream.java.
| Object org.antlr.runtime.tree.RewriteRuleSubtreeStream.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. 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.
Definition at line 67 of file RewriteRuleSubtreeStream.java.
| Object org.antlr.runtime.tree.RewriteRuleSubtreeStream.dup | ( | Object | el | ) | [protected, virtual] |
When constructing trees, sometimes we need to dup a token or AST subtree. Dup'ing a token means just creating another AST node around it. For trees, you must call the adaptor.dupTree() unless the element is for a tree root; then it must be a node dup.
Implements org.antlr.runtime.tree.RewriteRuleElementStream.
Definition at line 85 of file RewriteRuleSubtreeStream.java.
1.5.5