App Engine Python SDK  v1.6.9 rev.445
The Python runtime is available as an experimental Preview feature.
Public Member Functions | List of all members
google.appengine._internal.antlr3.tree.RewriteRuleSubtreeStream Class Reference
Inheritance diagram for google.appengine._internal.antlr3.tree.RewriteRuleSubtreeStream:
google.appengine._internal.antlr3.tree.RewriteRuleElementStream

Public Member Functions

def nextNode
 
def dup
 
- Public Member Functions inherited from google.appengine._internal.antlr3.tree.RewriteRuleElementStream
def __init__
 
def reset
 
def add
 
def nextTree
 
def dup
 
def toTree
 
def hasNext
 
def size
 
def getDescription
 

Additional Inherited Members

- Public Attributes inherited from google.appengine._internal.antlr3.tree.RewriteRuleElementStream
 cursor
 
 singleElement
 
 elements
 
 dirty
 
 elementDescription
 
 adaptor
 

Detailed Description

@brief Internal helper class.

Member Function Documentation

def google.appengine._internal.antlr3.tree.RewriteRuleSubtreeStream.nextNode (   self)
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.

The documentation for this class was generated from the following file: