antlr
Class DiagnosticCodeGenerator

java.lang.Object
  extended byantlr.CodeGenerator
      extended byantlr.DiagnosticCodeGenerator

public class DiagnosticCodeGenerator
extends CodeGenerator

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

DiagnosticCodeGenerator

public DiagnosticCodeGenerator()
Create a Diagnostic code-generator using the given Grammar The caller must still call setTool, setBehavior, and setAnalyzer before generating code.

Method Detail

gen

public void gen()
Generate the parser, lexer, and token types documentation

Specified by:
gen in class CodeGenerator

gen

public void gen(antlr.ActionElement action)
Generate code for the given grammar element.

Specified by:
gen in class CodeGenerator
Parameters:
action - The {...} action to generate

gen

public void gen(antlr.AlternativeBlock blk)
Generate code for the given grammar element.

Specified by:
gen in class CodeGenerator
Parameters:
blk - The "x|y|z|..." block to generate

gen

public void gen(antlr.BlockEndElement end)
Generate code for the given grammar element.

Specified by:
gen in class CodeGenerator
Parameters:
end - The block-end element to generate. Block-end elements are synthesized by the grammar parser to represent the end of a block.

gen

public void gen(antlr.CharLiteralElement atom)
Generate code for the given grammar element.

Specified by:
gen in class CodeGenerator
Parameters:
atom - The character literal reference to generate

gen

public void gen(antlr.CharRangeElement r)
Generate code for the given grammar element.

Specified by:
gen in class CodeGenerator
Parameters:
r - The character-range reference to generate

gen

public void gen(antlr.LexerGrammar g)
         throws java.io.IOException
Generate the lexer TXT file

Specified by:
gen in class CodeGenerator
Throws:
java.io.IOException

gen

public void gen(antlr.OneOrMoreBlock blk)
Generate code for the given grammar element.

Specified by:
gen in class CodeGenerator
Parameters:
blk - The (...)+ block to generate

gen

public void gen(antlr.ParserGrammar g)
         throws java.io.IOException
Generate the parser TXT file

Specified by:
gen in class CodeGenerator
Throws:
java.io.IOException

gen

public void gen(antlr.RuleRefElement rr)
Generate code for the given grammar element.

Specified by:
gen in class CodeGenerator
Parameters:
rr - The rule-reference to generate

gen

public void gen(antlr.StringLiteralElement atom)
Generate code for the given grammar element.

Specified by:
gen in class CodeGenerator
Parameters:
atom - The string-literal reference to generate

gen

public void gen(antlr.TokenRangeElement r)
Generate code for the given grammar element.

Specified by:
gen in class CodeGenerator
Parameters:
r - The token-range reference to generate

gen

public void gen(antlr.TokenRefElement atom)
Generate code for the given grammar element.

Specified by:
gen in class CodeGenerator
Parameters:
atom - The token-reference to generate

gen

public void gen(antlr.TreeElement t)
Description copied from class: CodeGenerator
Generate code for the given grammar element.

Specified by:
gen in class CodeGenerator

gen

public void gen(antlr.TreeWalkerGrammar g)
         throws java.io.IOException
Generate the tree-walker TXT file

Specified by:
gen in class CodeGenerator
Throws:
java.io.IOException

gen

public void gen(antlr.WildcardElement wc)
Generate a wildcard element

Specified by:
gen in class CodeGenerator
Parameters:
wc - The wildcard element to generate

gen

public void gen(antlr.ZeroOrMoreBlock blk)
Generate code for the given grammar element.

Specified by:
gen in class CodeGenerator
Parameters:
blk - The (...)* block to generate

genCommonBlock

public 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. Other routines may append else-clauses and such for error checking before the postfix is generated.


genFollowSetForRuleBlock

public void genFollowSetForRuleBlock(RuleBlock blk)
Generate a textual representation of the follow set for a block.

Parameters:
blk - The rule block of interest

genLookaheadSetForBlock

public void genLookaheadSetForBlock(antlr.AlternativeBlock blk)
Generate a textual representation of the lookahead set for a block.

Parameters:
blk - The block of interest

genNextToken

public void genNextToken()
Generate the nextToken rule. nextToken is a synthetic lexer rule that is the implicit OR of all user-defined lexer rules.


genRule

public void genRule(antlr.RuleSymbol s)
Generate code for a named rule block

Parameters:
s - The RuleSymbol describing the rule to generate

getASTCreateString

public java.lang.String getASTCreateString(Vector v)
Get a string for an expression to generate creation of an AST subtree.

Specified by:
getASTCreateString in class CodeGenerator
Parameters:
v - A Vector of String, where each element is an expression in the target language yielding an AST node.

getASTCreateString

public java.lang.String getASTCreateString(antlr.GrammarAtom atom,
                                           java.lang.String str)
Get a string for an expression to generate creating of an AST node

Specified by:
getASTCreateString in class CodeGenerator
Parameters:
str - The arguments to the AST constructor

mapTreeId

public java.lang.String mapTreeId(java.lang.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

Specified by:
mapTreeId in class CodeGenerator
Parameters:
id - The identifier name to map
Returns:
The mapped id (which may be the same as the input), or null if the mapping is invalid due to duplicates

printSet

public void printSet(int depth,
                     int k,
                     Lookahead lookahead)
Format a lookahead or follow set.

Parameters:
depth - The depth of the entire lookahead/follow
k - The lookahead level to print
lookahead - The lookahead/follow set to print