|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.antlr.runtime.tree.RewriteRuleElementStream
public abstract class RewriteRuleElementStream
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.
RewriteRuleSubtreeStream
,
TODO: add mechanism to detect/puke on modification after reading from stream
Field Summary | |
---|---|
protected TreeAdaptor |
adaptor
|
protected int |
cursor
Cursor 0..n-1. |
protected boolean |
dirty
Once a node / subtree has been used in a stream, it must be dup'd from then on. |
protected java.lang.String |
elementDescription
The element or stream description; usually has name of the token or rule reference that this list tracks. |
protected java.util.List |
elements
The list of tokens or subtrees we are tracking |
protected java.lang.Object |
singleElement
Track single elements w/o creating a list. |
Constructor Summary | |
---|---|
RewriteRuleElementStream(TreeAdaptor adaptor,
java.lang.String elementDescription)
|
|
RewriteRuleElementStream(TreeAdaptor adaptor,
java.lang.String elementDescription,
java.util.List elements)
Create a stream, but feed off an existing list |
|
RewriteRuleElementStream(TreeAdaptor adaptor,
java.lang.String elementDescription,
java.lang.Object oneElement)
Create a stream with one element |
Method Summary | |
---|---|
protected java.lang.Object |
_next()
do the work of getting the next element, making sure that it's a tree node or subtree. |
void |
add(java.lang.Object el)
|
protected abstract java.lang.Object |
dup(java.lang.Object el)
When constructing trees, sometimes we need to dup a token or AST subtree. |
java.lang.String |
getDescription()
|
boolean |
hasNext()
|
java.lang.Object |
nextTree()
Return the next element in the stream. |
void |
reset()
Reset the condition of this stream so that it appears we have not consumed any of its elements. |
int |
size()
|
protected java.lang.Object |
toTree(java.lang.Object el)
Ensure stream emits trees; tokens must be converted to AST nodes. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected int cursor
protected java.lang.Object singleElement
protected java.util.List elements
protected boolean dirty
protected java.lang.String elementDescription
protected TreeAdaptor adaptor
Constructor Detail |
---|
public RewriteRuleElementStream(TreeAdaptor adaptor, java.lang.String elementDescription)
public RewriteRuleElementStream(TreeAdaptor adaptor, java.lang.String elementDescription, java.lang.Object oneElement)
public RewriteRuleElementStream(TreeAdaptor adaptor, java.lang.String elementDescription, java.util.List elements)
Method Detail |
---|
public void reset()
public void add(java.lang.Object el)
public java.lang.Object nextTree()
protected java.lang.Object _next()
protected abstract java.lang.Object dup(java.lang.Object el)
protected java.lang.Object toTree(java.lang.Object el)
public boolean hasNext()
public int size()
public java.lang.String getDescription()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |