public class DocBookCodeGenerator extends CodeGenerator
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
doingLexRules
true during lexer generation, false during parser generation
|
protected boolean |
firstElementInAlt |
protected antlr.AlternativeElement |
prevAltElem |
protected int |
syntacticPredLevel
non-zero if inside syntactic predicate generation
|
analyzer, antlrTool, behavior, BITSET_OPTIMIZE_INIT_THRESHOLD, bitsetsUsed, bitsetTestThreshold, charFormatter, currentOutput, DEBUG_CODE_GENERATOR, DEFAULT_BITSET_TEST_THRESHOLD, DEFAULT_MAKE_SWITCH_THRESHOLD, grammar, makeSwitchThreshold, tabs, TokenTypesFileExt, TokenTypesFileSuffix| Constructor and Description |
|---|
DocBookCodeGenerator()
Create a Diagnostic code-generator using the given Grammar
The caller must still call setTool, setBehavior, and setAnalyzer
before generating code.
|
| Modifier and Type | Method and Description |
|---|---|
void |
gen()
Generate the code for all grammars
|
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 HTML file
|
void |
gen(antlr.OneOrMoreBlock blk)
Generate code for the given grammar element.
|
void |
gen(antlr.ParserGrammar g)
Generate the parser HTML 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.
|
protected void |
genAlt(antlr.Alternative alt) |
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.
|
protected void |
genGenericBlock(antlr.AlternativeBlock blk,
String blkOp) |
protected void |
genHeader()
Generate a header that is common to all TXT files
|
protected void |
genLookaheadSetForAlt(antlr.Alternative alt)
Generate the lookahead set for an alternate.
|
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
|
protected void |
genSynPred(antlr.SynPredBlock blk)
Generate the syntactic predicate.
|
void |
genTail() |
protected void |
genTokenTypes(antlr.TokenManager tm)
Generate the token types TXT file
|
String |
getASTCreateString(antlr.GrammarAtom atom,
String str)
Get a string for an expression to generate creating of an AST node
|
String |
getASTCreateString(Vector v)
Get a string for an expression to generate creation of an AST subtree.
|
String |
mapTreeId(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.
|
protected String |
processActionForSpecialSymbols(String actionStr,
int line,
RuleBlock currentRule,
ActionTransInfo tInfo)
Lexically process $ and # references within the action.
|
_print, _printAction, _println, decodeLexerRuleName, elementsAreRange, encodeLexerRuleName, extractIdOfAction, extractIdOfAction, extractTypeOfAction, extractTypeOfAction, genTokenInterchange, getBitsetName, getFIRSTBitSet, getFOLLOWBitSet, markBitsetForGen, print, printAction, println, printTabs, processStringForASTConstructor, removeAssignmentFromDeclaration, reverseLexerRuleName, setAnalyzer, setBehavior, setGrammar, setToolprotected int syntacticPredLevel
protected boolean doingLexRules
protected boolean firstElementInAlt
protected antlr.AlternativeElement prevAltElem
public DocBookCodeGenerator()
public void gen()
CodeGeneratorgen in class CodeGeneratorpublic void gen(antlr.ActionElement action)
gen in class CodeGeneratorblk - The {...} action to generatepublic void gen(antlr.AlternativeBlock blk)
gen in class CodeGeneratorblk - The "x|y|z|..." block to generatepublic void gen(antlr.BlockEndElement end)
gen in class CodeGeneratorblk - 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 CodeGeneratorblk - The character literal reference to generatepublic void gen(antlr.CharRangeElement r)
gen in class CodeGeneratorblk - The character-range reference to generatepublic void gen(antlr.LexerGrammar g)
throws IOException
gen in class CodeGeneratorIOExceptionpublic void gen(antlr.OneOrMoreBlock blk)
gen in class CodeGeneratorblk - The (...)+ block to generatepublic void gen(antlr.ParserGrammar g)
throws IOException
gen in class CodeGeneratorIOExceptionpublic void gen(antlr.RuleRefElement rr)
gen in class CodeGeneratorblk - The rule-reference to generatepublic void gen(antlr.StringLiteralElement atom)
gen in class CodeGeneratorblk - The string-literal reference to generatepublic void gen(antlr.TokenRangeElement r)
gen in class CodeGeneratorblk - The token-range reference to generatepublic void gen(antlr.TokenRefElement atom)
gen in class CodeGeneratorblk - The token-reference to generatepublic void gen(antlr.TreeElement t)
CodeGeneratorgen in class CodeGeneratorpublic void gen(antlr.TreeWalkerGrammar g)
throws IOException
gen in class CodeGeneratorIOExceptionpublic void gen(antlr.WildcardElement wc)
gen in class CodeGeneratorwc - The wildcard element to generatepublic void gen(antlr.ZeroOrMoreBlock blk)
gen in class CodeGeneratorblk - The (...)* block to generateprotected void genAlt(antlr.Alternative alt)
public void genCommonBlock(antlr.AlternativeBlock blk)
public void genFollowSetForRuleBlock(RuleBlock blk)
blk - The rule block of interestprotected void genGenericBlock(antlr.AlternativeBlock blk,
String blkOp)
protected void genHeader()
protected void genLookaheadSetForAlt(antlr.Alternative alt)
public 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 generateprotected void genSynPred(antlr.SynPredBlock blk)
blk - The syntactic predicate blockpublic void genTail()
protected void genTokenTypes(antlr.TokenManager tm)
throws IOException
IOExceptionprotected String processActionForSpecialSymbols(String actionStr, int line, RuleBlock currentRule, ActionTransInfo tInfo)
CodeGeneratorprocessActionForSpecialSymbols in class CodeGeneratorpublic String getASTCreateString(Vector v)
getASTCreateString in class CodeGeneratorv - A Vector of String, where each element is an expression in the target language yielding an AST node.public String getASTCreateString(antlr.GrammarAtom atom, String str)
getASTCreateString in class CodeGeneratorstr - The arguments to the AST constructorpublic String mapTreeId(String id, ActionTransInfo tInfo)
mapTreeId in class CodeGeneratorid - The identifier name to mapforInput - true if the input tree node variable is to be returned, otherwise the output variable is returned.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 printCopyright © 2017–2019 Eclipse Foundation. All rights reserved.