Java Doc for TokenStreamRewriteEngine.java in  » IDE-Netbeans » cnd » antlr » 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 » IDE Netbeans » cnd » antlr 
Source Cross Reference  Class Diagram Java Document (Java Doc) 


java.lang.Object
   antlr.TokenStreamRewriteEngine

TokenStreamRewriteEngine
public class TokenStreamRewriteEngine implements TokenStream,IASDebugStream(Code)
This token stream tracks the *entire* token stream coming from a lexer, but does not pass on the whitespace (or whatever else you want to discard) to the parser. This class can then be asked for the ith token in the input stream. Useful for dumping out the input stream exactly after doing some augmentation or other manipulations. Tokens are index from 0..n-1 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, TokenStreamRewriteEngine rewriteEngine = new TokenStreamRewriteEngine(lexer); JavaRecognizer parser = new JavaRecognizer(rewriteEngine); ... rewriteEngine.insertAfter("pass1", t, "foobar");} rewriteEngine.insertAfter("pass2", u, "start");} System.out.println(rewriteEngine.toString("pass1")); System.out.println(rewriteEngine.toString("pass2")); 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. If you don't use named rewrite streams, a "default" stream is used. Terence Parr, parrt at antlr.org University of San Francisco February 2004

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  BitSetdiscardMask
    
protected  intindex
    
protected  MaplastRewriteTokenIndexes
    
protected  Mapprograms
     You may have multiple, named streams of rewrite operations.
protected  TokenStreamstream
    
protected  Listtokens
    

Constructor Summary
public  TokenStreamRewriteEngine(TokenStream upstream)
    
public  TokenStreamRewriteEngine(TokenStream upstream, int initialSize)
    

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  voiddiscard(int ttype)
    
public  StringgetEntireText()
    
public  intgetLastRewriteTokenIndex()
    
protected  intgetLastRewriteTokenIndex(String programName)
    
public  TokenOffsetInfogetOffsetInfo(Token token)
    
protected  ListgetProgram(String name)
    
public  TokenWithIndexgetToken(int i)
    
public  intgetTokenStreamSize()
    
public  intindex()
    
public  voidinsertAfter(Token t, String text)
    
public  voidinsertAfter(int index, String text)
    
public  voidinsertAfter(String programName, Token t, String text)
    
public  voidinsertAfter(String programName, int index, String text)
    
public  voidinsertBefore(Token t, String text)
    
public  voidinsertBefore(int index, String text)
    
public  voidinsertBefore(String programName, Token t, String text)
    
public  voidinsertBefore(String programName, int index, String text)
    
public  TokennextToken()
    
public  voidreplace(int index, String text)
    
public  voidreplace(int from, int to, String text)
    
public  voidreplace(Token indexT, String text)
    
public  voidreplace(Token from, Token to, String text)
    
public  voidreplace(String programName, int from, int to, String text)
    
public  voidreplace(String programName, Token from, Token to, String 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  intsize()
    
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)



discardMask
protected BitSet discardMask(Code)
Which (whitespace) token(s) to throw out



index
protected int index(Code)
track index of tokens



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)



stream
protected TokenStream stream(Code)
Who do we suck tokens from?



tokens
protected List tokens(Code)
Track the incoming list of tokens




Constructor Detail
TokenStreamRewriteEngine
public TokenStreamRewriteEngine(TokenStream upstream)(Code)



TokenStreamRewriteEngine
public TokenStreamRewriteEngine(TokenStream upstream, int initialSize)(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



discard
public void discard(int ttype)(Code)



getEntireText
public String getEntireText()(Code)



getLastRewriteTokenIndex
public int getLastRewriteTokenIndex()(Code)



getLastRewriteTokenIndex
protected int getLastRewriteTokenIndex(String programName)(Code)



getOffsetInfo
public TokenOffsetInfo getOffsetInfo(Token token)(Code)



getProgram
protected List getProgram(String name)(Code)



getToken
public TokenWithIndex getToken(int i)(Code)



getTokenStreamSize
public int getTokenStreamSize()(Code)



index
public int index()(Code)



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



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



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



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



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



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



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



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



nextToken
public Token nextToken() throws TokenStreamException(Code)



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



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



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



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



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



replace
public void replace(String programName, Token from, Token to, String 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)



size
public int size()(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)



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.