Java Doc for TokenRewriteStream.java in  » Parser » antlr-3.0.1 » org » antlr » runtime » 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 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   org.antlr.runtime.CommonTokenStream
      org.antlr.runtime.TokenRewriteStream

TokenRewriteStream
public class TokenRewriteStream extends CommonTokenStream (Code)
Useful for dumping out the input stream after doing some augmentation or other manipulations. You can insert stuff, replace, and delete chunks. Note that the operations are done lazily--only if you convert the buffer to a String. This is very efficient because you are not moving data around all the time. As the buffer of tokens is converted to strings, the toString() method(s) check to see if there is an operation at the current index. If so, the operation is done and then normal String rendering continues on the buffer. This is like having multiple Turing machine instruction streams (programs) operating on a single input tape. :) Since the operations are done lazily at toString-time, operations do not screw up the token index values. That is, an insert operation at token index i does not change the index values for tokens i+1..n-1. Because operations never actually alter the buffer, you may always get the original token stream back without undoing anything. Since the instructions are queued up, you can easily simulate transactions and roll back any changes if there is an error just by removing instructions. For example, CharStream input = new ANTLRFileStream("input"); TLexer lex = new TLexer(input); TokenRewriteStream tokens = new TokenRewriteStream(lex); T parser = new T(tokens); parser.startRule(); Then in the rules, you can execute Token t,u; ... input.insertAfter(t, "text to put after t");} input.insertAfter(u, "text after u");} System.out.println(tokens.toString()); Actually, you have to cast the 'input' to a TokenRewriteStream. :( You can also have multiple "instruction streams" and get multiple rewrites from a single pass over the input. Just name the instruction streams and use that name again when printing the buffer. This could be useful for generating a C file and also its header file--all from the same buffer: tokens.insertAfter("pass1", t, "text to put after t");} tokens.insertAfter("pass2", u, "text after u");} System.out.println(tokens.toString("pass1")); System.out.println(tokens.toString("pass2")); If you don't use named rewrite streams, a "default" stream is used as the first example shows.

Inner Class :static class RewriteOperation
Inner Class :static class InsertBeforeOp extends RewriteOperation
Inner Class :static class ReplaceOp extends RewriteOperation
Inner Class :static class DeleteOp extends ReplaceOp

Field Summary
final public static  StringDEFAULT_PROGRAM_NAME
    
final public static  intMIN_TOKEN_INDEX
    
final public static  intPROGRAM_INIT_SIZE
    
protected  MaplastRewriteTokenIndexes
    
protected  Mapprograms
     You may have multiple, named streams of rewrite operations.

Constructor Summary
public  TokenRewriteStream()
    
public  TokenRewriteStream(TokenSource tokenSource)
    
public  TokenRewriteStream(TokenSource tokenSource, int channel)
    

Method Summary
protected  voidaddToSortedRewriteList(RewriteOperation op)
     If op.index > lastRewriteTokenIndexes, just add to the end.
protected  voidaddToSortedRewriteList(String programName, RewriteOperation op)
     Add an instruction to the rewrite instruction list ordered by the instruction number (use a binary search for efficiency). The list is ordered so that toString() can be done efficiently. When there are multiple instructions at the same index, the instructions must be ordered to ensure proper behavior.
public  voiddelete(int index)
    
public  voiddelete(int from, int to)
    
public  voiddelete(Token indexT)
    
public  voiddelete(Token from, Token to)
    
public  voiddelete(String programName, int from, int to)
    
public  voiddelete(String programName, Token from, Token to)
    
public  voiddeleteProgram()
    
public  voiddeleteProgram(String programName)
    
public  intgetLastRewriteTokenIndex()
    
protected  intgetLastRewriteTokenIndex(String programName)
    
protected  ListgetProgram(String name)
    
protected  voidinit()
    
public  voidinsertAfter(Token t, Object text)
    
public  voidinsertAfter(int index, Object text)
    
public  voidinsertAfter(String programName, Token t, Object text)
    
public  voidinsertAfter(String programName, int index, Object text)
    
public  voidinsertBefore(Token t, Object text)
    
public  voidinsertBefore(int index, Object text)
    
public  voidinsertBefore(String programName, Token t, Object text)
    
public  voidinsertBefore(String programName, int index, Object text)
    
public  voidreplace(int index, Object text)
    
public  voidreplace(int from, int to, Object text)
    
public  voidreplace(Token indexT, Object text)
    
public  voidreplace(Token from, Token to, Object text)
    
public  voidreplace(String programName, int from, int to, Object text)
    
public  voidreplace(String programName, Token from, Token to, Object text)
    
public  voidrollback(int instructionIndex)
    
public  voidrollback(String programName, int instructionIndex)
     Rollback the instruction stream for a program so that the indicated instruction (via instructionIndex) is no longer in the stream.
protected  voidsetLastRewriteTokenIndex(String programName, int i)
    
public  StringtoDebugString()
    
public  StringtoDebugString(int start, int end)
    
public  StringtoOriginalString()
    
public  StringtoOriginalString(int start, int end)
    
public  StringtoString()
    
public  StringtoString(String programName)
    
public  StringtoString(int start, int end)
    
public  StringtoString(String programName, int start, int end)
    

Field Detail
DEFAULT_PROGRAM_NAME
final public static String DEFAULT_PROGRAM_NAME(Code)



MIN_TOKEN_INDEX
final public static int MIN_TOKEN_INDEX(Code)



PROGRAM_INIT_SIZE
final public static int PROGRAM_INIT_SIZE(Code)



lastRewriteTokenIndexes
protected Map lastRewriteTokenIndexes(Code)
Map String (program name) -> Integer index



programs
protected Map programs(Code)
You may have multiple, named streams of rewrite operations. I'm calling these things "programs." Maps String (name) -> rewrite (List)




Constructor Detail
TokenRewriteStream
public TokenRewriteStream()(Code)



TokenRewriteStream
public TokenRewriteStream(TokenSource tokenSource)(Code)



TokenRewriteStream
public TokenRewriteStream(TokenSource tokenSource, int channel)(Code)




Method Detail
addToSortedRewriteList
protected void addToSortedRewriteList(RewriteOperation op)(Code)
If op.index > lastRewriteTokenIndexes, just add to the end. Otherwise, do linear



addToSortedRewriteList
protected void addToSortedRewriteList(String programName, RewriteOperation op)(Code)
Add an instruction to the rewrite instruction list ordered by the instruction number (use a binary search for efficiency). The list is ordered so that toString() can be done efficiently. When there are multiple instructions at the same index, the instructions must be ordered to ensure proper behavior. For example, a delete at index i must kill any replace operation at i. Insert-before operations must come before any replace / delete instructions. If there are multiple insert instructions for a single index, they are done in reverse insertion order so that "insert foo" then "insert bar" yields "foobar" in front rather than "barfoo". This is convenient because I can insert new InsertOp instructions at the index returned by the binary search. A ReplaceOp kills any previous replace op. Since delete is the same as replace with null text, i can check for ReplaceOp and cover DeleteOp at same time. :)



delete
public void delete(int index)(Code)



delete
public void delete(int from, int to)(Code)



delete
public void delete(Token indexT)(Code)



delete
public void delete(Token from, Token to)(Code)



delete
public void delete(String programName, int from, int to)(Code)



delete
public void delete(String programName, Token from, Token to)(Code)



deleteProgram
public void deleteProgram()(Code)



deleteProgram
public void deleteProgram(String programName)(Code)
Reset the program so that no instructions exist



getLastRewriteTokenIndex
public int getLastRewriteTokenIndex()(Code)



getLastRewriteTokenIndex
protected int getLastRewriteTokenIndex(String programName)(Code)



getProgram
protected List getProgram(String name)(Code)



init
protected void init()(Code)



insertAfter
public void insertAfter(Token t, Object text)(Code)



insertAfter
public void insertAfter(int index, Object text)(Code)



insertAfter
public void insertAfter(String programName, Token t, Object text)(Code)



insertAfter
public void insertAfter(String programName, int index, Object text)(Code)



insertBefore
public void insertBefore(Token t, Object text)(Code)



insertBefore
public void insertBefore(int index, Object text)(Code)



insertBefore
public void insertBefore(String programName, Token t, Object text)(Code)



insertBefore
public void insertBefore(String programName, int index, Object text)(Code)



replace
public void replace(int index, Object text)(Code)



replace
public void replace(int from, int to, Object text)(Code)



replace
public void replace(Token indexT, Object text)(Code)



replace
public void replace(Token from, Token to, Object text)(Code)



replace
public void replace(String programName, int from, int to, Object text)(Code)



replace
public void replace(String programName, Token from, Token to, Object text)(Code)



rollback
public void rollback(int instructionIndex)(Code)



rollback
public void rollback(String programName, int instructionIndex)(Code)
Rollback the instruction stream for a program so that the indicated instruction (via instructionIndex) is no longer in the stream. UNTESTED!



setLastRewriteTokenIndex
protected void setLastRewriteTokenIndex(String programName, int i)(Code)



toDebugString
public String toDebugString()(Code)



toDebugString
public String toDebugString(int start, int end)(Code)



toOriginalString
public String toOriginalString()(Code)



toOriginalString
public String toOriginalString(int start, int end)(Code)



toString
public String toString()(Code)



toString
public String toString(String programName)(Code)



toString
public String toString(int start, int end)(Code)



toString
public String toString(String programName, int start, int end)(Code)



Fields inherited from org.antlr.runtime.CommonTokenStream
protected int channel(Code)(Java Doc)
protected Map channelOverrideMap(Code)(Java Doc)
protected boolean discardOffChannelTokens(Code)(Java Doc)
protected Set discardSet(Code)(Java Doc)
protected int lastMarker(Code)(Java Doc)
protected int p(Code)(Java Doc)
protected TokenSource tokenSource(Code)(Java Doc)
protected List tokens(Code)(Java Doc)

Methods inherited from org.antlr.runtime.CommonTokenStream
public int LA(int i)(Code)(Java Doc)
protected Token LB(int k)(Code)(Java Doc)
public Token LT(int k)(Code)(Java Doc)
public void consume()(Code)(Java Doc)
public void discardOffChannelTokens(boolean discardOffChannelTokens)(Code)(Java Doc)
public void discardTokenType(int ttype)(Code)(Java Doc)
protected void fillBuffer()(Code)(Java Doc)
public Token get(int i)(Code)(Java Doc)
public TokenSource getTokenSource()(Code)(Java Doc)
public List getTokens()(Code)(Java Doc)
public List getTokens(int start, int stop)(Code)(Java Doc)
public List getTokens(int start, int stop, BitSet types)(Code)(Java Doc)
public List getTokens(int start, int stop, List types)(Code)(Java Doc)
public List getTokens(int start, int stop, int ttype)(Code)(Java Doc)
public int index()(Code)(Java Doc)
public int mark()(Code)(Java Doc)
public void release(int marker)(Code)(Java Doc)
public void rewind(int marker)(Code)(Java Doc)
public void rewind()(Code)(Java Doc)
public void seek(int index)(Code)(Java Doc)
public void setTokenSource(TokenSource tokenSource)(Code)(Java Doc)
public void setTokenTypeChannel(int ttype, int channel)(Code)(Java Doc)
public int size()(Code)(Java Doc)
protected int skipOffTokenChannels(int i)(Code)(Java Doc)
protected int skipOffTokenChannelsReverse(int i)(Code)(Java Doc)
public String toString()(Code)(Java Doc)
public String toString(int start, int stop)(Code)(Java Doc)
public String toString(Token start, Token stop)(Code)(Java Doc)

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.