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] |