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


java.lang.Object
   org.antlr.codegen.Target

All known Subclasses:   org.antlr.codegen.RubyTarget,  org.antlr.codegen.JavaTarget,  org.antlr.codegen.ObjCTarget,  org.antlr.codegen.PythonTarget,  org.antlr.codegen.CSharpTarget,  org.antlr.codegen.CTarget,  org.antlr.codegen.CPPTarget,
Target
public class Target (Code)
The code generator for ANTLR can usually be retargeted just by providing a new X.stg file for language X, however, sometimes the files that must be generated vary enough that some X-specific functionality is required. For example, in C, you must generate header files whereas in Java you do not. Other languages may want to keep DFA separate from the main generated recognizer file. The notion of a Code Generator target abstracts out the creation of the various files. As new language targets get added to the ANTLR system, this target class may have to be altered to handle more functionality. Eventually, just about all language generation issues will be expressible in terms of these methods. If org.antlr.codegen.XTarget class exists, it is used else Target base class is used. I am using a superclass rather than an interface for this target concept because I can add functionality later without breaking previously written targets (extra interface methods would force adding dummy functions to all code generator target classes).


Field Summary
protected  String[]targetCharValueEscape
     For pure strings of Java 16-bit unicode char, how can we display it in the target language as a literal.

Constructor Summary
public  Target()
    

Method Summary
protected  voidgenRecognizerFile(Tool tool, CodeGenerator generator, Grammar grammar, StringTemplate outputFileST)
    
protected  voidgenRecognizerHeaderFile(Tool tool, CodeGenerator generator, Grammar grammar, StringTemplate headerFileST, String extName)
    
public  intgetMaxCharValue(CodeGenerator generator)
     Some targets only support ASCII or 8-bit chars/strings.
public  StringgetTarget64BitStringFromValue(long word)
     Convert long to 0xNNNNNNNNNNNNNNNN by default for spitting out with bitsets.
public  StringgetTargetCharLiteralFromANTLRCharLiteral(CodeGenerator generator, String literal)
     Convert from an ANTLR char literal found in a grammar file to an equivalent char literal in the target language.
public  StringgetTargetStringLiteralFromANTLRStringLiteral(CodeGenerator generator, String literal)
     Convert from an ANTLR string literal found in a grammar file to an equivalent string literal in the target language.
public  StringgetTargetStringLiteralFromString(String s, boolean quoted)
     Given a random string of Java unicode chars, return a new string with optionally appropriate quote characters for target language and possibly with some escaped characters.
public  StringgetTargetStringLiteralFromString(String s)
    
public  StringgetTokenTypeAsTargetLabel(CodeGenerator generator, int ttype)
    
public  booleanisValidActionScope(int grammarType, String scope)
     Is scope in @scope::name {action} valid for this kind of grammar? Targets like C++ may want to allow new scopes like headerfile or some such.
protected  voidperformGrammarAnalysis(CodeGenerator generator, Grammar grammar)
    
public  ListpostProcessAction(List chunks, antlr.Token actionToken)
     Give target a chance to do some postprocessing on actions.

Field Detail
targetCharValueEscape
protected String[] targetCharValueEscape(Code)
For pure strings of Java 16-bit unicode char, how can we display it in the target language as a literal. Useful for dumping predicates and such that may refer to chars that need to be escaped when represented as strings. Also, templates need to be escaped so that the target language can hold them as a string. I have defined (via the constructor) the set of typical escapes, but your Target subclass is free to alter the translated chars or add more definitions. This is nonstatic so each target can have a different set in memory at same time.




Constructor Detail
Target
public Target()(Code)




Method Detail
genRecognizerFile
protected void genRecognizerFile(Tool tool, CodeGenerator generator, Grammar grammar, StringTemplate outputFileST) throws IOException(Code)



genRecognizerHeaderFile
protected void genRecognizerHeaderFile(Tool tool, CodeGenerator generator, Grammar grammar, StringTemplate headerFileST, String extName) throws IOException(Code)



getMaxCharValue
public int getMaxCharValue(CodeGenerator generator)(Code)
Some targets only support ASCII or 8-bit chars/strings. For example, C++ will probably want to return 0xFF here.



getTarget64BitStringFromValue
public String getTarget64BitStringFromValue(long word)(Code)
Convert long to 0xNNNNNNNNNNNNNNNN by default for spitting out with bitsets. I.e., convert bytes to hex string.



getTargetCharLiteralFromANTLRCharLiteral
public String getTargetCharLiteralFromANTLRCharLiteral(CodeGenerator generator, String literal)(Code)
Convert from an ANTLR char literal found in a grammar file to an equivalent char literal in the target language. For most languages, this means leaving 'x' as 'x'. Actually, we need to escape ' ' so that it doesn't get converted to \n by the compiler. Convert the literal to the char value and then to an appropriate target char literal. Expect single quotes around the incoming literal.



getTargetStringLiteralFromANTLRStringLiteral
public String getTargetStringLiteralFromANTLRStringLiteral(CodeGenerator generator, String literal)(Code)
Convert from an ANTLR string literal found in a grammar file to an equivalent string literal in the target language. For Java, this is the translation 'a\n"' -> "a\n\"". Expect single quotes around the incoming literal. Just flip the quotes and replace double quotes with \"



getTargetStringLiteralFromString
public String getTargetStringLiteralFromString(String s, boolean quoted)(Code)
Given a random string of Java unicode chars, return a new string with optionally appropriate quote characters for target language and possibly with some escaped characters. For example, if the incoming string has actual newline characters, the output of this method would convert them to the two char sequence \n for Java, C, C++, ... The new string has double-quotes around it as well. Example String in memory: a"[newlinechar]b'c[carriagereturnchar]d[tab]e\f would be converted to the valid Java s: "a\"\nb'c\rd\te\\f" or a\"\nb'c\rd\te\\f depending on the quoted arg.



getTargetStringLiteralFromString
public String getTargetStringLiteralFromString(String s)(Code)



getTokenTypeAsTargetLabel
public String getTokenTypeAsTargetLabel(CodeGenerator generator, int ttype)(Code)
Target must be able to override the labels used for token types



isValidActionScope
public boolean isValidActionScope(int grammarType, String scope)(Code)
Is scope in @scope::name {action} valid for this kind of grammar? Targets like C++ may want to allow new scopes like headerfile or some such. The action names themselves are not policed at the moment so targets can add template actions w/o having to recompile ANTLR.



performGrammarAnalysis
protected void performGrammarAnalysis(CodeGenerator generator, Grammar grammar)(Code)



postProcessAction
public List postProcessAction(List chunks, antlr.Token actionToken)(Code)
Give target a chance to do some postprocessing on actions. Python for example will have to fix the indention.



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.