Class RewriteRuleElementStream
object --+
         |
        RewriteRuleElementStream
- Known Subclasses:
- 
      
@brief Internal helper class.
  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.
  @see org.antlr.runtime.tree.RewriteRuleSubtreeStream @see 
  org.antlr.runtime.tree.RewriteRuleTokenStream
  TODO: add mechanism to detect/puke on modification after reading from 
  stream
    |  | 
        
          | __init__(self,
        adaptor,
        elementDescription,
        elements=None) x.__init__(...) initializes x; see help(type(x)) for signature
 |  |  | 
    |  | 
        
          | reset(self) Reset the condition of this stream so that it appears we have not 
      consumed any of its elements.
 |  |  | 
    |  |  | 
    |  | 
        
          | nextTree(self) Return the next element in the stream.
 |  |  | 
    |  | 
        
          | _next(self) do the work of getting the next element, making sure that it's a tree
      node or subtree.
 |  |  | 
    |  | 
        
          | dup(self,
        el) When constructing trees, sometimes we need to dup a token or AST 
      subtree.
 |  |  | 
    |  | 
        
          | toTree(self,
        el) Ensure stream emits trees; tokens must be converted to AST nodes.
 |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
    |  |  | 
  
    | Inherited from object:__delattr__,__format__,__getattribute__,__hash__,__new__,__reduce__,__reduce_ex__,__repr__,__setattr__,__sizeof__,__str__,__subclasshook__ | 
| 
  | __init__(self,
        adaptor,
        elementDescription,
        elements=None)
    (Constructor)
 |  |  x.__init__(...) initializes x; see help(type(x)) for signature 
    Overrides:
        object.__init__
        (inherited documentation) | 
 
| Reset the condition of this stream so that it appears we have not 
  consumed any of its elements.  Elements themselves are untouched. Once we
  reset the stream, any future use will need duplicates.  Set the dirty 
  bit. 
   | 
 
| 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). 
   | 
 
| 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. 
   | 
 
| 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. 
   | 
 
| Ensure stream emits trees; tokens must be converted to AST nodes. AST 
  nodes can be passed through unmolested. 
   | 
 
| Deprecated. Directly access elementDescription attribute 
   |