
Public Member Functions | |
| def | __init__ |
| def | reset |
| Reset the condition of this stream so that it appears we have not consumed any of its elements. | |
| def | add |
| def | nextTree |
| Return the next element in the stream. | |
| def | dup |
| When constructing trees, sometimes we need to dup a token or AST subtree. | |
| def | toTree |
| Ensure stream emits trees; tokens must be converted to AST nodes. | |
| def | hasNext |
| def | size |
| def | getDescription |
| Deprecated. | |
Public Attributes | |
| cursor | |
| singleElement | |
| elements | |
| dirty | |
| elementDescription | |
| adaptor | |
Private Member Functions | |
| def | _next |
| do the work of getting the next element, making sure that it's a tree node or subtree. | |
Static Private Attributes | |
| __len__ = size | |
A generic list of elements tracked in an alternative to be used in a -> rewrite rule. We need to subclass to fill in the next() method, which returns either an AST node wrapped around a token payload or an existing subtree.
Once you start next()ing, do not try to add more elements. It will break the cursor tracking I believe.
org.antlr.runtime.tree.RewriteRuleTokenStream
Definition at line 2550 of file tree.py.
| def antlr3.tree.RewriteRuleElementStream.__init__ | ( | self, | ||
| adaptor, | ||||
| elementDescription, | ||||
elements = None | ||||
| ) |
| def antlr3.tree.RewriteRuleElementStream.reset | ( | self | ) |
| def antlr3.tree.RewriteRuleElementStream.nextTree | ( | self | ) |
Return the next element in the stream.
If out of elements, throw an exception unless size()==1. If size is 1, then return elements[0].
Return a duplicate node/subtree if stream is out of elements and size==1. If we've already used the element, dup (dirty bit set).
| def antlr3.tree.RewriteRuleElementStream._next | ( | self | ) | [private] |
do the work of getting the next element, making sure that it's a tree node or subtree.
Deal with the optimization of single- element list versus list of size > 1. Throw an exception if the stream is empty or we're out of elements and size>1. protected so you can override in a subclass if necessary.
| def antlr3.tree.RewriteRuleElementStream.dup | ( | self, | ||
| el | ||||
| ) |
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.
Reimplemented in antlr3.tree.RewriteRuleTokenStream, antlr3.tree.RewriteRuleSubtreeStream, and antlr3.tree.RewriteRuleNodeStream.
| def antlr3.tree.RewriteRuleElementStream.toTree | ( | self, | ||
| el | ||||
| ) |
Ensure stream emits trees; tokens must be converted to AST nodes.
AST nodes can be passed through unmolested.
Reimplemented in antlr3.tree.RewriteRuleTokenStream, and antlr3.tree.RewriteRuleNodeStream.
| def antlr3.tree.RewriteRuleElementStream.getDescription | ( | self | ) |
antlr3.tree.RewriteRuleElementStream.__len__ = size [static, private] |
1.5.5