| Prev Class | Next Class | Frames | No Frames |
| Summary: Nested | Field | Method | Constr | Detail: Nested | Field | Method | Constr |
java.lang.Objectantlr.CodeGeneratorantlr.HTMLCodeGeneratorpublic class HTMLCodeGeneratorextends CodeGeneratorField Summary | |
protected boolean |
|
protected boolean | |
protected AlternativeElement | |
protected int |
|
Constructor Summary | |
| |
Method Summary | |
(package private) static String |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
void |
|
protected void |
|
void |
|
void |
|
protected void |
|
protected void |
|
protected void |
|
void |
|
void |
|
void |
|
protected void |
|
void |
|
protected void |
|
String |
|
String |
|
String |
|
void | |
protected String |
|
protected boolean doingLexRules
true during lexer generation, false during parser generation
protected boolean firstElementInAlt
protected int syntacticPredLevel
non-zero if inside syntactic predicate generation
public HTMLCodeGenerator()
Create a Diagnostic code-generator using the given Grammar The caller must still call setTool, setBehavior, and setAnalyzer before generating code.
(package private) static String HTMLEncode(String s)
Encode a string for printing in a HTML document.. e.g. encode '<' '>' and similar stuff
- Parameters:
s- the string to encode
public void gen(ActionElement action)
Generate code for the given grammar element.
- Overrides:
- gen in interface CodeGenerator
- Parameters:
public void gen(AlternativeBlock blk)
Generate code for the given grammar element.
- Overrides:
- gen in interface CodeGenerator
- Parameters:
blk- The "x|y|z|..." block to generate
public void gen(BlockEndElement end)
Generate code for the given grammar element.
- Overrides:
- gen in interface CodeGenerator
- Parameters:
public void gen(CharLiteralElement atom)
Generate code for the given grammar element.
- Overrides:
- gen in interface CodeGenerator
- Parameters:
public void gen(CharRangeElement r)
Generate code for the given grammar element.
- Overrides:
- gen in interface CodeGenerator
- Parameters:
public void gen(LexerGrammar g) throws IOException
Generate the lexer HTML file
- Overrides:
- gen in interface CodeGenerator
public void gen(OneOrMoreBlock blk)
Generate code for the given grammar element.
- Overrides:
- gen in interface CodeGenerator
- Parameters:
blk- The (...)+ block to generate
public void gen(ParserGrammar g) throws IOException
Generate the parser HTML file
- Overrides:
- gen in interface CodeGenerator
public void gen(RuleRefElement rr)
Generate code for the given grammar element.
- Overrides:
- gen in interface CodeGenerator
- Parameters:
public void gen(StringLiteralElement atom)
Generate code for the given grammar element.
- Overrides:
- gen in interface CodeGenerator
- Parameters:
public void gen(TokenRangeElement r)
Generate code for the given grammar element.
- Overrides:
- gen in interface CodeGenerator
- Parameters:
public void gen(TokenRefElement atom)
Generate code for the given grammar element.
- Overrides:
- gen in interface CodeGenerator
- Parameters:
public void gen(TreeElement t)
Generate code for the given grammar element.
- Overrides:
- gen in interface CodeGenerator
- Parameters:
public void gen(TreeWalkerGrammar g) throws IOException
Generate the tree-walker TXT file
- Overrides:
- gen in interface CodeGenerator
public void gen(WildcardElement wc)
Generate a wildcard element
- Overrides:
- gen in interface CodeGenerator
public void gen(ZeroOrMoreBlock blk)
Generate code for the given grammar element.
- Overrides:
- gen in interface CodeGenerator
- Parameters:
blk- The (...)* block to generate
public void genCommonBlock(AlternativeBlock blk)
Generate common code for a block of alternatives; return a postscript that needs to be generated at the end of the block. Other routines may append else-clauses and such for error checking before the postfix is generated.
public void genFollowSetForRuleBlock(RuleBlock blk)
Generate a textual representation of the follow set for a block.
- Parameters:
blk- The rule block of interest
protected void genHeader()
Generate a header that is common to all TXT files
protected void genLookaheadSetForAlt(Alternative alt)
Generate the lookahead set for an alternate.
public void genLookaheadSetForBlock(AlternativeBlock blk)
Generate a textual representation of the lookahead set for a block.
- Parameters:
blk- The block of interest
public void genNextToken()
Generate the nextToken rule. nextToken is a synthetic lexer rule that is the implicit OR of all user-defined lexer rules.
public void genRule(RuleSymbol s)
Generate code for a named rule block
- Parameters:
s- The RuleSymbol describing the rule to generate
protected void genSynPred(SynPredBlock blk)
Generate the syntactic predicate. This basically generates the alternative block, buts tracks if we are inside a synPred
- Parameters:
blk- The syntactic predicate block
public void genTail()
protected void genTokenTypes(TokenManager tm) throws IOException
Generate the token types TXT file
public String getASTCreateString(GrammarAtom atom, String str)
Get a string for an expression to generate creating of an AST node
- Overrides:
- getASTCreateString in interface CodeGenerator
- Parameters:
str- The arguments to the AST constructor
public String getASTCreateString(Vector v)
Get a string for an expression to generate creation of an AST subtree.
- Overrides:
- getASTCreateString in interface CodeGenerator
- Parameters:
v- A Vector of String, where each element is an expression in the target language yielding an AST node.
public String mapTreeId(String id,
ActionTransInfo tInfo)Map an identifier to it's corresponding tree-node variable. This is context-sensitive, depending on the rule and alternative being generated
- Overrides:
- mapTreeId in interface CodeGenerator
- Parameters:
id- The identifier name to map
public void printSet(int depth,
int k,
Lookahead lookahead)Format a lookahead or follow set.
- Parameters:
depth- The depth of the entire lookahead/followk- The lookahead level to printlookahead- The lookahead/follow set to print
protected String processActionForSpecialSymbols(String actionStr,
int line,
RuleBlock currentRule,
ActionTransInfo tInfo)Lexically process $ and # references within the action. This will replace #id and #(...) with the appropriate function calls and/or variables etc...
- Overrides:
- processActionForSpecialSymbols in interface CodeGenerator