Java Doc for TreeAdaptor.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) 


org.antlr.runtime.tree.TreeAdaptor

All known Subclasses:   org.antlr.runtime.tree.BaseTreeAdaptor,  org.antlr.runtime.debug.DebugTreeAdaptor,
TreeAdaptor
public interface TreeAdaptor (Code)
How to create and navigate trees. Rather than have a separate factory and adaptor, I've merged them. Makes sense to encapsulate. This takes the place of the tree construction code generated in the generated code in 2.x and the ASTFactory. I do not need to know the type of a tree at all so they are all generic Objects. This may increase the amount of typecasting needed. :(




Method Summary
public  voidaddChild(Object t, Object child)
     Add a child to the tree t.
public  ObjectbecomeRoot(Object newRoot, Object oldRoot)
     If oldRoot is a nil root, just copy or move the children to newRoot. If not a nil root, make oldRoot a child of newRoot. old=^(nil a b c), new=r yields ^(r a b c) old=^(a b c), new=r yields ^(r ^(a b c)) If newRoot is a nil-rooted single child tree, use the single child as the new root node. old=^(nil a b c), new=^(nil r) yields ^(r a b c) old=^(a b c), new=^(nil r) yields ^(r ^(a b c)) If oldRoot was null, it's ok, just return newRoot (even if isNil). old=null, new=r yields r old=null, new=^(nil r) yields ^(nil r) Return newRoot.
public  ObjectbecomeRoot(Token newRoot, Object oldRoot)
     Create a node for newRoot make it the root of oldRoot.
public  Objectcreate(Token payload)
     Create a tree node from Token object; for CommonTree type trees, then the token just becomes the payload.
public  Objectcreate(int tokenType, Token fromToken)
     Create a new node derived from a token, with a new token type.
public  Objectcreate(int tokenType, Token fromToken, String text)
     Same as create(tokenType,fromToken) except set the text too.
public  Objectcreate(int tokenType, String text)
     Create a new node derived from a token, with a new token type.
public  ObjectdupNode(Object treeNode)
    
public  ObjectdupTree(Object tree)
    
public  ObjectgetChild(Object t, int i)
    
public  intgetChildCount(Object t)
    
public  StringgetText(Object t)
    
public  TokengetToken(Object t)
     Return the token object from which this node was created. Currently used only for printing an error message. The error display routine in BaseRecognizer needs to display where the input the error occurred.
public  intgetTokenStartIndex(Object t)
    
public  intgetTokenStopIndex(Object t)
    
public  intgetType(Object t)
    
public  intgetUniqueID(Object node)
     For identifying trees. How to identify nodes so we can say "add node to a prior node"? Even becomeRoot is an issue.
public  booleanisNil(Object tree)
    
public  Objectnil()
     Return a nil node (an empty but non-null node) that can hold a list of element as the children.
public  ObjectrulePostProcessing(Object root)
     Given the root of the subtree created for this rule, post process it to do any simplifications or whatever you want.
public  voidsetText(Object t, String text)
    
public  voidsetTokenBoundaries(Object t, Token startToken, Token stopToken)
     Where are the bounds in the input token stream for this node and all children? Each rule that creates AST nodes will call this method right before returning.
public  voidsetType(Object t, int type)
    



Method Detail
addChild
public void addChild(Object t, Object child)(Code)
Add a child to the tree t. If child is a flat tree (a list), make all in list children of t. Warning: if t has no children, but child does and child isNil then you can decide it is ok to move children to t via t.children = child.children; i.e., without copying the array. Just make sure that this is consistent with have the user will build ASTs. Do nothing if t or child is null.



becomeRoot
public Object becomeRoot(Object newRoot, Object oldRoot)(Code)
If oldRoot is a nil root, just copy or move the children to newRoot. If not a nil root, make oldRoot a child of newRoot. old=^(nil a b c), new=r yields ^(r a b c) old=^(a b c), new=r yields ^(r ^(a b c)) If newRoot is a nil-rooted single child tree, use the single child as the new root node. old=^(nil a b c), new=^(nil r) yields ^(r a b c) old=^(a b c), new=^(nil r) yields ^(r ^(a b c)) If oldRoot was null, it's ok, just return newRoot (even if isNil). old=null, new=r yields r old=null, new=^(nil r) yields ^(nil r) Return newRoot. Throw an exception if newRoot is not a simple node or nil root with a single child node--it must be a root node. If newRoot is ^(nil x) return x as newRoot. Be advised that it's ok for newRoot to point at oldRoot's children; i.e., you don't have to copy the list. We are constructing these nodes so we should have this control for efficiency.



becomeRoot
public Object becomeRoot(Token newRoot, Object oldRoot)(Code)
Create a node for newRoot make it the root of oldRoot. If oldRoot is a nil root, just copy or move the children to newRoot. If not a nil root, make oldRoot a child of newRoot. Return node created for newRoot. Be advised: when debugging ASTs, the DebugTreeAdaptor manually calls create(Token child) and then plain becomeRoot(node, node) because it needs to trap calls to create, but it can't since it delegates to not inherits from the TreeAdaptor.



create
public Object create(Token payload)(Code)
Create a tree node from Token object; for CommonTree type trees, then the token just becomes the payload. This is the most common create call.



create
public Object create(int tokenType, Token fromToken)(Code)
Create a new node derived from a token, with a new token type. This is invoked from an imaginary node ref on right side of a rewrite rule as IMAG[$tokenLabel]. This should invoke createToken(Token).



create
public Object create(int tokenType, Token fromToken, String text)(Code)
Same as create(tokenType,fromToken) except set the text too. This is invoked from an imaginary node ref on right side of a rewrite rule as IMAG[$tokenLabel, "IMAG"]. This should invoke createToken(Token).



create
public Object create(int tokenType, String text)(Code)
Create a new node derived from a token, with a new token type. This is invoked from an imaginary node ref on right side of a rewrite rule as IMAG["IMAG"]. This should invoke createToken(int,String).



dupNode
public Object dupNode(Object treeNode)(Code)
Duplicate a single tree node



dupTree
public Object dupTree(Object tree)(Code)
Duplicate tree recursively, using dupNode() for each node



getChild
public Object getChild(Object t, int i)(Code)
Get a child 0..n-1 node



getChildCount
public int getChildCount(Object t)(Code)
How many children? If 0, then this is a leaf node



getText
public String getText(Object t)(Code)



getToken
public Token getToken(Object t)(Code)
Return the token object from which this node was created. Currently used only for printing an error message. The error display routine in BaseRecognizer needs to display where the input the error occurred. If your tree of limitation does not store information that can lead you to the token, you can create a token filled with the appropriate information and pass that back. See BaseRecognizer.getErrorMessage().



getTokenStartIndex
public int getTokenStartIndex(Object t)(Code)
Get the token start index for this subtree; return -1 if no such index



getTokenStopIndex
public int getTokenStopIndex(Object t)(Code)
Get the token stop index for this subtree; return -1 if no such index



getType
public int getType(Object t)(Code)
For tree parsing, I need to know the token type of a node



getUniqueID
public int getUniqueID(Object node)(Code)
For identifying trees. How to identify nodes so we can say "add node to a prior node"? Even becomeRoot is an issue. Use System.identityHashCode(node) usually.



isNil
public boolean isNil(Object tree)(Code)
Is tree considered a nil node used to make lists of child nodes?



nil
public Object nil()(Code)
Return a nil node (an empty but non-null node) that can hold a list of element as the children. If you want a flat tree (a list) use "t=adaptor.nil(); t.addChild(x); t.addChild(y);"



rulePostProcessing
public Object rulePostProcessing(Object root)(Code)
Given the root of the subtree created for this rule, post process it to do any simplifications or whatever you want. A required behavior is to convert ^(nil singleSubtree) to singleSubtree as the setting of start/stop indexes relies on a single non-nil root for non-flat trees. Flat trees such as for lists like "idlist : ID+ ;" are left alone unless there is only one ID. For a list, the start/stop indexes are set in the nil node. This method is executed after all rule tree construction and right before setTokenBoundaries().



setText
public void setText(Object t, String text)(Code)
Node constructors can set the text of a node



setTokenBoundaries
public void setTokenBoundaries(Object t, Token startToken, Token stopToken)(Code)
Where are the bounds in the input token stream for this node and all children? Each rule that creates AST nodes will call this method right before returning. Flat trees (i.e., lists) will still usually have a nil root node just to hold the children list. That node would contain the start/stop indexes then.



setType
public void setType(Object t, int type)(Code)
Node constructors can set the type of a node



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