Java Doc for RewriteRuleElementStream.java in  » Parser » antlr-3.0.1 » org » antlr » runtime » tree » Java Source Code / Java DocumentationJava Source Code and Java Documentation

Java Source Code / Java Documentation
1. 6.0 JDK Core
2. 6.0 JDK Modules
3. 6.0 JDK Modules com.sun
4. 6.0 JDK Modules com.sun.java
5. 6.0 JDK Modules sun
6. 6.0 JDK Platform
7. Ajax
8. Apache Harmony Java SE
9. Aspect oriented
10. Authentication Authorization
11. Blogger System
12. Build
13. Byte Code
14. Cache
15. Chart
16. Chat
17. Code Analyzer
18. Collaboration
19. Content Management System
20. Database Client
21. Database DBMS
22. Database JDBC Connection Pool
23. Database ORM
24. Development
25. EJB Server geronimo
26. EJB Server GlassFish
27. EJB Server JBoss 4.2.1
28. EJB Server resin 3.1.5
29. ERP CRM Financial
30. ESB
31. Forum
32. GIS
33. Graphic Library
34. Groupware
35. HTML Parser
36. IDE
37. IDE Eclipse
38. IDE Netbeans
39. Installer
40. Internationalization Localization
41. Inversion of Control
42. Issue Tracking
43. J2EE
44. JBoss
45. JMS
46. JMX
47. Library
48. Mail Clients
49. Net
50. Parser
51. PDF
52. Portal
53. Profiler
54. Project Management
55. Report
56. RSS RDF
57. Rule Engine
58. Science
59. Scripting
60. Search Engine
61. Security
62. Sevlet Container
63. Source Control
64. Swing Library
65. Template Engine
66. Test Coverage
67. Testing
68. UML
69. Web Crawler
70. Web Framework
71. Web Mail
72. Web Server
73. Web Services
74. Web Services apache cxf 2.0.1
75. Web Services AXIS2
76. Wiki Engine
77. Workflow Engines
78. XML
79. XML UI
Java
Java Tutorial
Java Open Source
Jar File Download
Java Articles
Java Products
Java by API
Photoshop Tutorials
Maya Tutorials
Flash Tutorials
3ds-Max Tutorials
Illustrator Tutorials
GIMP Tutorials
C# / C Sharp
C# / CSharp Tutorial
C# / CSharp Open Source
ASP.Net
ASP.NET Tutorial
JavaScript DHTML
JavaScript Tutorial
JavaScript Reference
HTML / CSS
HTML CSS Reference
C / ANSI-C
C Tutorial
C++
C++ Tutorial
Ruby
PHP
Python
Python Tutorial
Python Open Source
SQL Server / T-SQL
SQL Server / T-SQL Tutorial
Oracle PL / SQL
Oracle PL/SQL Tutorial
PostgreSQL
SQL / MySQL
MySQL Tutorial
VB.Net
VB.Net Tutorial
Flash / Flex / ActionScript
VBA / Excel / Access / Word
XML
XML Tutorial
Microsoft Office PowerPoint 2007 Tutorial
Microsoft Office Excel 2007 Tutorial
Microsoft Office Word 2007 Tutorial
Java Source Code / Java Documentation » Parser » antlr 3.0.1 » org.antlr.runtime.tree 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   org.antlr.runtime.tree.RewriteRuleElementStream

All known Subclasses:   org.antlr.runtime.tree.RewriteRuleSubtreeStream,  org.antlr.runtime.tree.RewriteRuleTokenStream,
RewriteRuleElementStream
abstract public class RewriteRuleElementStream (Code)
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 Also:   org.antlr.runtime.tree.RewriteRuleSubtreeStream
See Also:   org.antlr.runtime.tree.RewriteRuleTokenStream
See Also:   TODO: add mechanism to detect/puke on modification after reading from stream


Field Summary
protected  TreeAdaptoradaptor
    
protected  intcursor
     Cursor 0..n-1.
protected  booleandirty
     Once a node / subtree has been used in a stream, it must be dup'd from then on.
protected  StringelementDescription
     The element or stream description; usually has name of the token or rule reference that this list tracks.
protected  Listelements
    
protected  ObjectsingleElement
     Track single elements w/o creating a list.

Constructor Summary
public  RewriteRuleElementStream(TreeAdaptor adaptor, String elementDescription)
    
public  RewriteRuleElementStream(TreeAdaptor adaptor, String elementDescription, Object oneElement)
    
public  RewriteRuleElementStream(TreeAdaptor adaptor, String elementDescription, List elements)
    

Method Summary
protected  Object_next()
     do the work of getting the next element, making sure that it's a tree node or subtree.
public  voidadd(Object el)
    
abstract protected  Objectdup(Object el)
     When constructing trees, sometimes we need to dup a token or AST subtree.
public  StringgetDescription()
    
public  booleanhasNext()
    
public  Objectnext()
     Return the next element in the stream.
public  voidreset()
     Reset the condition of this stream so that it appears we have not consumed any of its elements.
public  intsize()
    
protected  ObjecttoTree(Object el)
     Ensure stream emits trees; tokens must be converted to AST nodes.

Field Detail
adaptor
protected TreeAdaptor adaptor(Code)



cursor
protected int cursor(Code)
Cursor 0..n-1. If singleElement!=null, cursor is 0 until you next(), which bumps it to 1 meaning no more elements.



dirty
protected boolean dirty(Code)
Once a node / subtree has been used in a stream, it must be dup'd from then on. Streams are reset after subrules so that the streams can be reused in future subrules. So, reset must set a dirty bit. If dirty, then next() always returns a dup. I wanted to use "naughty bit" here, but couldn't think of a way to use "naughty".



elementDescription
protected String elementDescription(Code)
The element or stream description; usually has name of the token or rule reference that this list tracks. Can include rulename too, but the exception would track that info.



elements
protected List elements(Code)
The list of tokens or subtrees we are tracking



singleElement
protected Object singleElement(Code)
Track single elements w/o creating a list. Upon 2nd add, alloc list




Constructor Detail
RewriteRuleElementStream
public RewriteRuleElementStream(TreeAdaptor adaptor, String elementDescription)(Code)



RewriteRuleElementStream
public RewriteRuleElementStream(TreeAdaptor adaptor, String elementDescription, Object oneElement)(Code)
Create a stream with one element



RewriteRuleElementStream
public RewriteRuleElementStream(TreeAdaptor adaptor, String elementDescription, List elements)(Code)
Create a stream, but feed off an existing list




Method Detail
_next
protected Object _next()(Code)
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.



add
public void add(Object el)(Code)



dup
abstract protected Object dup(Object el)(Code)
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.



getDescription
public String getDescription()(Code)



hasNext
public boolean hasNext()(Code)



next
public Object next()(Code)
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).



reset
public void reset()(Code)
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.



size
public int size()(Code)



toTree
protected Object toTree(Object el)(Code)
Ensure stream emits trees; tokens must be converted to AST nodes. AST nodes can be passed through unmolested.



Methods inherited from java.lang.Object
native protected Object clone() throws CloneNotSupportedException(Code)(Java Doc)
public boolean equals(Object obj)(Code)(Java Doc)
protected void finalize() throws Throwable(Code)(Java Doc)
final native public Class getClass()(Code)(Java Doc)
native public int hashCode()(Code)(Java Doc)
final native public void notify()(Code)(Java Doc)
final native public void notifyAll()(Code)(Java Doc)
public String toString()(Code)(Java Doc)
final native public void wait(long timeout) throws InterruptedException(Code)(Java Doc)
final public void wait(long timeout, int nanos) throws InterruptedException(Code)(Java Doc)
final public void wait() throws InterruptedException(Code)(Java Doc)

www.java2java.com | Contact Us
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.