|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--antlr.CodeGenerator
Untamed:
Field Summary | |
protected LLkGrammarAnalyzer |
analyzer
The LLk analyzer |
protected DefineGrammarSymbols |
behavior
The grammar behavior |
protected Vector |
bitsetsUsed
List of all bitsets that must be dumped. |
protected int |
bitsetTestThreshold
This is a hint for the language-specific code generator. |
protected CharFormatter |
charFormatter
Object used to format characters in the target language. |
protected PrintWriter |
currentOutput
Current output Stream |
protected boolean |
DEBUG_CODE_GENERATOR
Use option "codeGenDebug" to generate debugging output |
protected static int |
DEFAULT_BITSET_TEST_THRESHOLD
|
protected static int |
DEFAULT_MAKE_SWITCH_THRESHOLD
Default values for code-generation thresholds |
protected Grammar |
grammar
The grammar for which we generate code |
protected int |
makeSwitchThreshold
This is a hint for the language-specific code generator. |
private static boolean |
OLD_ACTION_TRANSLATOR
|
protected int |
tabs
Current tab indentation for code output |
static String |
TokenTypesFileExt
Enabled: |
static String |
TokenTypesFileSuffix
Enabled: |
protected Tool |
tool
The antlr Tool |
Constructor Summary | |
CodeGenerator()
Enabled: Construct code generator base class |
Method Summary | |
protected void |
_print(String s)
Output a String to the currentOutput stream. |
protected void |
_printAction(String s)
Print an action without leading tabs, attempting to preserve the current indentation level for multi-line actions Ignored if string is null. |
protected void |
_println(String s)
Output a String followed by newline, to the currentOutput stream. |
static boolean |
elementsAreRange(int[] elems)
Enabled: Test if a set element array represents a contiguous range. |
protected String |
extractIdOfAction(String s,
int line)
Get the identifier portion of an argument-action. |
protected String |
extractIdOfAction(Token t)
Get the identifier portion of an argument-action token. |
protected String |
extractTypeOfAction(String s,
int line)
Get the type portion of an argument-action. |
protected String |
extractTypeOfAction(Token t)
Get the type string out of an argument-action token. |
abstract void |
gen()
Enabled: Generate the code for all grammars |
abstract void |
gen(ActionElement action)
Enabled: Generate code for the given grammar element. |
abstract void |
gen(AlternativeBlock blk)
Enabled: Generate code for the given grammar element. |
abstract void |
gen(BlockEndElement end)
Enabled: Generate code for the given grammar element. |
abstract void |
gen(CharLiteralElement atom)
Enabled: Generate code for the given grammar element. |
abstract void |
gen(CharRangeElement r)
Enabled: Generate code for the given grammar element. |
abstract void |
gen(LexerGrammar g)
Enabled: Generate the code for a parser |
abstract void |
gen(OneOrMoreBlock blk)
Enabled: Generate code for the given grammar element. |
abstract void |
gen(ParserGrammar g)
Enabled: Generate the code for a parser |
abstract void |
gen(RuleRefElement rr)
Enabled: Generate code for the given grammar element. |
abstract void |
gen(StringLiteralElement atom)
Enabled: Generate code for the given grammar element. |
abstract void |
gen(TokenRangeElement r)
Enabled: Generate code for the given grammar element. |
abstract void |
gen(TokenRefElement atom)
Enabled: Generate code for the given grammar element. |
abstract void |
gen(TreeElement t)
Enabled: Generate code for the given grammar element. |
abstract void |
gen(TreeWalkerGrammar g)
Enabled: Generate the code for a parser |
abstract void |
gen(WildcardElement wc)
Enabled: Generate code for the given grammar element. |
abstract void |
gen(ZeroOrMoreBlock blk)
Enabled: Generate code for the given grammar element. |
protected void |
genTokenInterchange(TokenManager tm)
Generate the token types as a text file for persistence across shared lexer/parser |
abstract String |
getASTCreateString(GrammarAtom atom,
String str)
Enabled: Get a string for an expression to generate creating of an AST node |
abstract String |
getASTCreateString(Vector v)
Enabled: Get a string for an expression to generate creation of an AST subtree. |
protected String |
getBitsetName(int index)
Given the index of a bitset in the bitset list, generate a unique name. |
static String |
lexerRuleName(String id)
Enabled: |
abstract String |
mapTreeId(String id,
ActionTransInfo tInfo)
Enabled: Map an identifier to it's corresponding tree-node variable. |
protected int |
markBitsetForGen(BitSet p)
Add a bitset to the list of bitsets to be generated. |
protected void |
print(String s)
Output tab indent followed by a String, to the currentOutput stream. |
protected void |
printAction(String s)
Print an action with leading tabs, attempting to preserve the current indentation level for multi-line actions Ignored if string is null. |
protected void |
println(String s)
Output tab indent followed by a String followed by newline, to the currentOutput stream. |
protected void |
printTabs()
Output the current tab indentation. |
protected String |
processActionForTreeSpecifiers(String actionStr,
int line,
RuleBlock currentRule,
ActionTransInfo tInfo)
Lexically process tree-specifiers in the action. |
String |
processStringForASTConstructor(String str)
Enabled: Process a string for an simple expression for use in xx/action.g it is used to cast simple tokens/references to the right type for the generated language. |
protected String |
removeAssignmentFromDeclaration(String d)
Remove the assignment portion of a declaration, if any. |
private void |
reset()
Set all fields back like one just created |
static String |
reverseLexerRuleName(String id)
Enabled: |
void |
setAnalyzer(LLkGrammarAnalyzer analyzer_)
Enabled: |
void |
setBehavior(DefineGrammarSymbols behavior_)
Enabled: |
protected void |
setGrammar(Grammar g)
Set a grammar for the code generator to use |
void |
setTool(Tool tool_)
Enabled: |
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
protected int tabs
protected transient PrintWriter currentOutput
protected Grammar grammar
protected Vector bitsetsUsed
protected Tool tool
protected DefineGrammarSymbols behavior
protected LLkGrammarAnalyzer analyzer
protected CharFormatter charFormatter
protected boolean DEBUG_CODE_GENERATOR
protected static final int DEFAULT_MAKE_SWITCH_THRESHOLD
protected static final int DEFAULT_BITSET_TEST_THRESHOLD
protected int makeSwitchThreshold
protected int bitsetTestThreshold
private static boolean OLD_ACTION_TRANSLATOR
public static String TokenTypesFileSuffix
public static String TokenTypesFileExt
Constructor Detail |
public CodeGenerator()
Method Detail |
protected void _print(String s)
s
- The string to outputprotected void _printAction(String s)
s
- The action string to outputprotected void _println(String s)
s
- The string to outputpublic static boolean elementsAreRange(int[] elems)
elems
- The array of elements representing the set, usually from BitSet.toArray().
protected String extractIdOfAction(Token t)
t
- The action token
protected String extractIdOfAction(String s, int line)
s
- The action textline
- Line used for error reporting.
protected String extractTypeOfAction(Token t)
t
- The action token
protected String extractTypeOfAction(String s, int line)
s
- The action textline
- Line used for error reporting.
public abstract void gen()
public abstract void gen(ActionElement action)
action
- The {...} action to generatepublic abstract void gen(AlternativeBlock blk)
blk
- The "x|y|z|..." block to generatepublic abstract void gen(BlockEndElement end)
end
- The block-end element to generate. Block-end
elements are synthesized by the grammar parser to represent
the end of a block.public abstract void gen(CharLiteralElement atom)
atom
- The character literal reference to generatepublic abstract void gen(CharRangeElement r)
r
- The character-range reference to generatepublic abstract void gen(LexerGrammar g) throws IOException
IOException
public abstract void gen(OneOrMoreBlock blk)
blk
- The (...)+ block to generatepublic abstract void gen(ParserGrammar g) throws IOException
IOException
public abstract void gen(RuleRefElement rr)
rr
- The rule-reference to generatepublic abstract void gen(StringLiteralElement atom)
atom
- The string-literal reference to generatepublic abstract void gen(TokenRangeElement r)
r
- The token-range reference to generatepublic abstract void gen(TokenRefElement atom)
atom
- The token-reference to generatepublic abstract void gen(TreeElement t)
public abstract void gen(TreeWalkerGrammar g) throws IOException
IOException
public abstract void gen(WildcardElement wc)
wc
- The wildcard element to generatepublic abstract void gen(ZeroOrMoreBlock blk)
blk
- The (...)* block to generateprotected void genTokenInterchange(TokenManager tm) throws IOException
IOException
public String processStringForASTConstructor(String str)
str
- A String.public abstract String getASTCreateString(Vector v)
v
- A Vector of String, where each element is an expression in the target language yielding an AST node.public abstract String getASTCreateString(GrammarAtom atom, String str)
str
- The text of the arguments to the AST constructionprotected String getBitsetName(int index)
index
- The index of the bitset in the bitset list.public static String lexerRuleName(String id)
public abstract String mapTreeId(String id, ActionTransInfo tInfo)
id
- The identifier name to map
protected int markBitsetForGen(BitSet p)
p
- Bit set to mark for code generation
protected void print(String s)
s
- The string to output.protected void printAction(String s)
s
- The action string to outputprotected void println(String s)
s
- The string to outputprotected void printTabs()
protected String processActionForTreeSpecifiers(String actionStr, int line, RuleBlock currentRule, ActionTransInfo tInfo)
protected String removeAssignmentFromDeclaration(String d)
d
- the declaration
private void reset()
public static String reverseLexerRuleName(String id)
public void setAnalyzer(LLkGrammarAnalyzer analyzer_)
public void setBehavior(DefineGrammarSymbols behavior_)
protected void setGrammar(Grammar g)
public void setTool(Tool tool_)
|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |