java.lang.Objectantlr.CodeGenerator
antlr.DiagnosticCodeGenerator
Generate MyParser.txt, MyLexer.txt and MyParserTokenTypes.txt
Field Summary |
Fields inherited from class antlr.CodeGenerator |
TokenTypesFileExt, TokenTypesFileSuffix |
Constructor Summary | |
DiagnosticCodeGenerator()
Create a Diagnostic code-generator using the given Grammar The caller must still call setTool, setBehavior, and setAnalyzer before generating code. |
Method Summary | |
void |
gen()
Generate the parser, lexer, and token types documentation |
void |
gen(antlr.ActionElement action)
Generate code for the given grammar element. |
void |
gen(antlr.AlternativeBlock blk)
Generate code for the given grammar element. |
void |
gen(antlr.BlockEndElement end)
Generate code for the given grammar element. |
void |
gen(antlr.CharLiteralElement atom)
Generate code for the given grammar element. |
void |
gen(antlr.CharRangeElement r)
Generate code for the given grammar element. |
void |
gen(antlr.LexerGrammar g)
Generate the lexer TXT file |
void |
gen(antlr.OneOrMoreBlock blk)
Generate code for the given grammar element. |
void |
gen(antlr.ParserGrammar g)
Generate the parser TXT file |
void |
gen(antlr.RuleRefElement rr)
Generate code for the given grammar element. |
void |
gen(antlr.StringLiteralElement atom)
Generate code for the given grammar element. |
void |
gen(antlr.TokenRangeElement r)
Generate code for the given grammar element. |
void |
gen(antlr.TokenRefElement atom)
Generate code for the given grammar element. |
void |
gen(antlr.TreeElement t)
Generate code for the given grammar element. |
void |
gen(antlr.TreeWalkerGrammar g)
Generate the tree-walker TXT file |
void |
gen(antlr.WildcardElement wc)
Generate a wildcard element |
void |
gen(antlr.ZeroOrMoreBlock blk)
Generate code for the given grammar element. |
void |
genCommonBlock(antlr.AlternativeBlock blk)
Generate common code for a block of alternatives; return a postscript that needs to be generated at the end of the block. |
void |
genFollowSetForRuleBlock(RuleBlock blk)
Generate a textual representation of the follow set for a block. |
void |
genLookaheadSetForBlock(antlr.AlternativeBlock blk)
Generate a textual representation of the lookahead set for a block. |
void |
genNextToken()
Generate the nextToken rule. |
void |
genRule(antlr.RuleSymbol s)
Generate code for a named rule block |
java.lang.String |
getASTCreateString(antlr.GrammarAtom atom,
java.lang.String str)
Get a string for an expression to generate creating of an AST node |
java.lang.String |
getASTCreateString(Vector v)
Get a string for an expression to generate creation of an AST subtree. |
java.lang.String |
mapTreeId(java.lang.String id,
ActionTransInfo tInfo)
Map an identifier to it's corresponding tree-node variable. |
void |
printSet(int depth,
int k,
Lookahead lookahead)
Format a lookahead or follow set. |
Methods inherited from class antlr.CodeGenerator |
decodeLexerRuleName, elementsAreRange, encodeLexerRuleName, getFIRSTBitSet, getFOLLOWBitSet, processStringForASTConstructor, reverseLexerRuleName, setAnalyzer, setBehavior, setTool |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public DiagnosticCodeGenerator()
Method Detail |
public void gen()
gen
in class CodeGenerator
public void gen(antlr.ActionElement action)
gen
in class CodeGenerator
action
- The {...} action to generatepublic void gen(antlr.AlternativeBlock blk)
gen
in class CodeGenerator
blk
- The "x|y|z|..." block to generatepublic void gen(antlr.BlockEndElement end)
gen
in class CodeGenerator
end
- The block-end element to generate. Block-end
elements are synthesized by the grammar parser to represent
the end of a block.public void gen(antlr.CharLiteralElement atom)
gen
in class CodeGenerator
atom
- The character literal reference to generatepublic void gen(antlr.CharRangeElement r)
gen
in class CodeGenerator
r
- The character-range reference to generatepublic void gen(antlr.LexerGrammar g) throws java.io.IOException
gen
in class CodeGenerator
java.io.IOException
public void gen(antlr.OneOrMoreBlock blk)
gen
in class CodeGenerator
blk
- The (...)+ block to generatepublic void gen(antlr.ParserGrammar g) throws java.io.IOException
gen
in class CodeGenerator
java.io.IOException
public void gen(antlr.RuleRefElement rr)
gen
in class CodeGenerator
rr
- The rule-reference to generatepublic void gen(antlr.StringLiteralElement atom)
gen
in class CodeGenerator
atom
- The string-literal reference to generatepublic void gen(antlr.TokenRangeElement r)
gen
in class CodeGenerator
r
- The token-range reference to generatepublic void gen(antlr.TokenRefElement atom)
gen
in class CodeGenerator
atom
- The token-reference to generatepublic void gen(antlr.TreeElement t)
CodeGenerator
gen
in class CodeGenerator
public void gen(antlr.TreeWalkerGrammar g) throws java.io.IOException
gen
in class CodeGenerator
java.io.IOException
public void gen(antlr.WildcardElement wc)
gen
in class CodeGenerator
wc
- The wildcard element to generatepublic void gen(antlr.ZeroOrMoreBlock blk)
gen
in class CodeGenerator
blk
- The (...)* block to generatepublic void genCommonBlock(antlr.AlternativeBlock blk)
public void genFollowSetForRuleBlock(RuleBlock blk)
blk
- The rule block of interestpublic void genLookaheadSetForBlock(antlr.AlternativeBlock blk)
blk
- The block of interestpublic void genNextToken()
public void genRule(antlr.RuleSymbol s)
s
- The RuleSymbol describing the rule to generatepublic java.lang.String getASTCreateString(Vector v)
getASTCreateString
in class CodeGenerator
v
- A Vector of String, where each element is an expression in the target language yielding an AST node.public java.lang.String getASTCreateString(antlr.GrammarAtom atom, java.lang.String str)
getASTCreateString
in class CodeGenerator
str
- The arguments to the AST constructorpublic java.lang.String mapTreeId(java.lang.String id, ActionTransInfo tInfo)
mapTreeId
in class CodeGenerator
id
- The identifier name to map
public void printSet(int depth, int k, Lookahead lookahead)
depth
- The depth of the entire lookahead/followk
- The lookahead level to printlookahead
- The lookahead/follow set to print