|
Server : Apache/2.2.2 (Fedora) System : Linux App1.pathumtani.go.th 2.6.20-1.2320.fc5smp #1 SMP Tue Jun 12 19:40:16 EDT 2007 i686 User : apache ( 48) PHP Version : 5.2.9 Disable Function : NONE Directory : /usr/share/javadoc/antlr/antlr/ |
Upload File : |
<?xml version="1.0" encoding="US-ASCII"?>
<!DOCTYPE html PUBLIC "-//gnu.org///DTD XHTML 1.1 plus Target 1.0//EN" "../resources/xhtml11-target10.dtd"><html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"><head><title>JavaCodeGenerator (antlr Javadoc)</title><script src="../resources/gjdoc.js" type="text/javascript"><!-- this comment required for konqueror 3.2.2 --></script><meta http-equiv="Content-Type" content="text/html; charset=US-ASCII"/><meta name="generator" content="GNU Gjdoc Standard Doclet"/><meta name="keywords" content="antlr.JavaCodeGenerator class"/><meta name="keywords" content="syntacticPredLevel"/><meta name="keywords" content="genAST"/><meta name="keywords" content="saveText"/><meta name="keywords" content="labeledElementType"/><meta name="keywords" content="labeledElementASTType"/><meta name="keywords" content="labeledElementInit"/><meta name="keywords" content="commonExtraArgs"/><meta name="keywords" content="commonExtraParams"/><meta name="keywords" content="commonLocalVars"/><meta name="keywords" content="lt1Value"/><meta name="keywords" content="exceptionThrown"/><meta name="keywords" content="throwNoViable"/><meta name="keywords" content="currentRule"/><meta name="keywords" content="currentASTResult"/><meta name="keywords" content="treeVariableMap"/><meta name="keywords" content="declaredASTVariables"/><meta name="keywords" content="astVarNumber"/><meta name="keywords" content="NONUNIQUE"/><meta name="keywords" content="caseSizeThreshold"/><meta name="keywords" content="addSemPred()"/><meta name="keywords" content="exitIfError()"/><meta name="keywords" content="gen()"/><meta name="keywords" content="genAlt()"/><meta name="keywords" content="genBitsets()"/><meta name="keywords" content="genBlockInitAction()"/><meta name="keywords" content="genBlockPreamble()"/><meta name="keywords" content="genCases()"/><meta name="keywords" content="genCommonBlock()"/><meta name="keywords" content="genASTDeclaration()"/><meta name="keywords" content="genHeader()"/><meta name="keywords" content="genMatch()"/><meta name="keywords" content="genMatchUsingAtomText()"/><meta name="keywords" content="genMatchUsingAtomTokenType()"/><meta name="keywords" content="genNextToken()"/><meta name="keywords" content="genRule()"/><meta name="keywords" content="genSemPred()"/><meta name="keywords" content="genSemPredMap()"/><meta name="keywords" content="genSynPred()"/><meta name="keywords" content="genTokenStrings()"/><meta name="keywords" content="genTokenASTNodeMap()"/><meta name="keywords" content="genTokenTypes()"/><meta name="keywords" content="getASTCreateString()"/><meta name="keywords" content="getLookaheadTestExpression()"/><meta name="keywords" content="getLookaheadTestTerm()"/><meta name="keywords" content="getRangeExpression()"/><meta name="keywords" content="lookaheadIsEmpty()"/><meta name="keywords" content="mapTreeId()"/><meta name="keywords" content="processActionForSpecialSymbols()"/><meta name="keywords" content="setupOutput()"/><link rel="stylesheet" type="text/css" href="../resources/gjdochtml-clean-layout.css" title="GNU Clean"/><link rel="stylesheet" type="text/css" href="../resources/gjdochtml-clean-color1.css" title="GNU Clean"/></head><body class="content class" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)"><table class="navbar div top"><tr><td class="navbar div top"><div class="navbar div top"><span class="navbar item enabled"><a href="../overview-summary.html">Overview</a></span> <span class="navbar item enabled"><a href="package-summary.html">Package</a></span> <span class="navbar item active">Class</span> <span class="navbar item enabled"><a href="JavaCodeGenerator-uses.html">Use</a></span> <span class="navbar item enabled"><a href="tree.html">Tree</a></span> <span class="navbar item enabled"><a href="../alphaindex-1.html">Index</a></span> <span class="navbar item enabled"><a href="../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../about.html">About</a></span></div></td></tr><tr><td class="navi"><a href="../antlr/JavaCharFormatter.html">Prev Class</a> | <a href="../antlr/LexerGrammar.html">Next Class</a></td><td class="navi"><a href="../index.html" title="Show in a frameset" target="_top">Frames</a> | <a href="JavaCodeGenerator.html" title="Show without frames" target="_top">No Frames</a> </td></tr><tr><td class="navi">Summary: Nested | <a href="#summary-fields">Field</a> | <a href="#summary-methods">Method</a> | <a href="#summary-constructors">Constr</a></td><td class="navi">Detail: Nested | <a href="#detail-fields">Field</a> | <a href="#detail-methods">Method</a> | <a href="#detail-constructors">Constr</a></td></tr></table><div class="class title outer"><h3 class="class title-package">antlr</h3><h1 class="class title-class">Class JavaCodeGenerator</h1></div><div class="class inheritance-tree"><ul class="inheritance 0"><li class="inheritance 0"><code><a href="file:/usr/share/javadoc/java/java/lang/Object.html">java.lang.Object</a></code></li><li><ul class="inheritance 1"><li class="inheritance 1"><code><a href="../antlr/CodeGenerator.html">antlr.CodeGenerator</a></code></li><li><ul class="inheritance 2"><li class="inheritance 2"><code>antlr.JavaCodeGenerator</code></li><li></li></ul></li></ul></li></ul></div><hr/><div class="class synopsis outer"><div class="class synopsis declaration"><code>public class <b class="class synopsis name">JavaCodeGenerator</b></code></div><div class="class synopsis superclass"><code>extends <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></code></div></div><hr/><div class="class description">Generate MyParser.java, MyLexer.java and MyParserTokenTypes.java </div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><a name="summary-fields" id="summary-fields"/><dl class="table container"><dd><table class="class summary" border="1" width="100%"><tr class="table header"><td colspan="2"><h2 class="table header">Field Summary</h2></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected static String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#NONUNIQUE">NONUNIQUE</a></code></dt><dd class="description">Special value used to mark duplicate in treeVariableMap </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">(package private) int</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#astVarNumber">astVarNumber</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">static int</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#caseSizeThreshold">caseSizeThreshold</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">(package private) String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#commonExtraArgs">commonExtraArgs</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">(package private) String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#commonExtraParams">commonExtraParams</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">(package private) String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#commonLocalVars">commonLocalVars</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">(package private) String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#currentASTResult">currentASTResult</a></code></dt><dd class="description">Tracks the rule or labeled subrule being generated.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">(package private) <a href="../antlr/RuleBlock.html" title="Class in antlr">RuleBlock</a></code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#currentRule">currentRule</a></code></dt><dd class="description">Tracks the rule being generated.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">(package private) Hashtable</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#declaredASTVariables">declaredASTVariables</a></code></dt><dd class="description">Used to keep track of which AST variables have been defined in a rule
(except for the #rule_name and #rule_name_in var's
</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">(package private) String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#exceptionThrown">exceptionThrown</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected boolean</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genAST">genAST</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">(package private) String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#labeledElementASTType">labeledElementASTType</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">(package private) String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#labeledElementInit">labeledElementInit</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">(package private) String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#labeledElementType">labeledElementType</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">(package private) String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#lt1Value">lt1Value</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected boolean</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#saveText">saveText</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected int</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#syntacticPredLevel">syntacticPredLevel</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">(package private) String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#throwNoViable">throwNoViable</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">(package private) Hashtable</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#treeVariableMap">treeVariableMap</a></code></dt><dd class="description">Mapping between the ids used in the current alt, and the
names of variables used to represent their AST values.</dd></dl></td></tr></table></dd></dl><dl class="table container"><dd><table class="class summary" border="1" width="100%"><tr class="table sub header"><td colspan="2"><h3 class="table sub header">Fields inherited from class antlr.<a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></h3></td></tr><tr><td class="inherited"><a href="../antlr/CodeGenerator.html#BITSET_OPTIMIZE_INIT_THRESHOLD"><code class="member">BITSET_OPTIMIZE_INIT_THRESHOLD</code></a>, <a href="../antlr/CodeGenerator.html#DEBUG_CODE_GENERATOR"><code class="member">DEBUG_CODE_GENERATOR</code></a>, <a href="../antlr/CodeGenerator.html#DEFAULT_BITSET_TEST_THRESHOLD"><code class="member">DEFAULT_BITSET_TEST_THRESHOLD</code></a>, <a href="../antlr/CodeGenerator.html#DEFAULT_MAKE_SWITCH_THRESHOLD"><code class="member">DEFAULT_MAKE_SWITCH_THRESHOLD</code></a>, <a href="../antlr/CodeGenerator.html#TokenTypesFileExt"><code class="member">TokenTypesFileExt</code></a>, <a href="../antlr/CodeGenerator.html#TokenTypesFileSuffix"><code class="member">TokenTypesFileSuffix</code></a>, <a href="../antlr/CodeGenerator.html#analyzer"><code class="member">analyzer</code></a>, <a href="../antlr/CodeGenerator.html#antlrTool"><code class="member">antlrTool</code></a>, <a href="../antlr/CodeGenerator.html#behavior"><code class="member">behavior</code></a>, <a href="../antlr/CodeGenerator.html#bitsetTestThreshold"><code class="member">bitsetTestThreshold</code></a>, <a href="../antlr/CodeGenerator.html#bitsetsUsed"><code class="member">bitsetsUsed</code></a>, <a href="../antlr/CodeGenerator.html#charFormatter"><code class="member">charFormatter</code></a>, <a href="../antlr/CodeGenerator.html#currentOutput"><code class="member">currentOutput</code></a>, <a href="../antlr/CodeGenerator.html#grammar"><code class="member">grammar</code></a>, <a href="../antlr/CodeGenerator.html#makeSwitchThreshold"><code class="member">makeSwitchThreshold</code></a>, <a href="../antlr/CodeGenerator.html#tabs"><code class="member">tabs</code></a></td></tr></table></dd></dl><a name="summary-constructors" id="summary-constructors"/><dl class="table container"><dd><table class="class summary" border="1" width="100%"><tr class="table header"><td colspan="2"><h2 class="table header">Constructor Summary</h2></td></tr><tr><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#JavaCodeGenerator()">JavaCodeGenerator</a>()</code></dt><dd class="description">Create a Java code-generator using the given Grammar.</dd></dl></td></tr></table></dd></dl><a name="summary-methods" id="summary-methods"/><dl class="table container"><dd><table class="class summary" border="1" width="100%"><tr class="table header"><td colspan="2"><h2 class="table header">Method Summary</h2></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected int</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#addSemPred(String)">addSemPred</a>(String predicate)</code></dt><dd class="description">Adds a semantic predicate string to the sem pred vector
These strings will be used to build an array of sem pred names
when building a debugging parser.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#exitIfError()">exitIfError</a>()</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen()">gen</a>()</code></dt><dd class="description">Generate the parser, lexer, treeparser, and token types in Java </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.ActionElement)">gen</a>(<a href="../antlr/ActionElement.html" title="Class in antlr">ActionElement</a> action)</code></dt><dd class="description">Generate code for the given grammar element.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.AlternativeBlock)">gen</a>(<a href="../antlr/AlternativeBlock.html" title="Class in antlr">AlternativeBlock</a> blk)</code></dt><dd class="description">Generate code for the given grammar element.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.BlockEndElement)">gen</a>(<a href="../antlr/BlockEndElement.html" title="Class in antlr">BlockEndElement</a> end)</code></dt><dd class="description">Generate code for the given grammar element.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.CharLiteralElement)">gen</a>(<a href="../antlr/CharLiteralElement.html" title="Class in antlr">CharLiteralElement</a> atom)</code></dt><dd class="description">Generate code for the given grammar element.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.CharRangeElement)">gen</a>(<a href="../antlr/CharRangeElement.html" title="Class in antlr">CharRangeElement</a> r)</code></dt><dd class="description">Generate code for the given grammar element.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.LexerGrammar)">gen</a>(<a href="../antlr/LexerGrammar.html" title="Class in antlr">LexerGrammar</a> g)</code></dt><dd class="description">Generate the lexer Java file </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.OneOrMoreBlock)">gen</a>(<a href="../antlr/OneOrMoreBlock.html" title="Class in antlr">OneOrMoreBlock</a> blk)</code></dt><dd class="description">Generate code for the given grammar element.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.ParserGrammar)">gen</a>(<a href="../antlr/ParserGrammar.html" title="Class in antlr">ParserGrammar</a> g)</code></dt><dd class="description">Generate the parser Java file </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.RuleRefElement)">gen</a>(<a href="../antlr/RuleRefElement.html" title="Class in antlr">RuleRefElement</a> rr)</code></dt><dd class="description">Generate code for the given grammar element.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.StringLiteralElement)">gen</a>(<a href="../antlr/StringLiteralElement.html" title="Class in antlr">StringLiteralElement</a> atom)</code></dt><dd class="description">Generate code for the given grammar element.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.TokenRangeElement)">gen</a>(<a href="../antlr/TokenRangeElement.html" title="Class in antlr">TokenRangeElement</a> r)</code></dt><dd class="description">Generate code for the given grammar element.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.TokenRefElement)">gen</a>(<a href="../antlr/TokenRefElement.html" title="Class in antlr">TokenRefElement</a> atom)</code></dt><dd class="description">Generate code for the given grammar element.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.TreeElement)">gen</a>(<a href="../antlr/TreeElement.html" title="Class in antlr">TreeElement</a> t)</code></dt><dd class="description">Generate code for the given grammar element.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.TreeWalkerGrammar)">gen</a>(<a href="../antlr/TreeWalkerGrammar.html" title="Class in antlr">TreeWalkerGrammar</a> g)</code></dt><dd class="description">Generate the tree-parser Java file </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.WildcardElement)">gen</a>(<a href="../antlr/WildcardElement.html" title="Class in antlr">WildcardElement</a> wc)</code></dt><dd class="description">Generate code for the given grammar element.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#gen(antlr.ZeroOrMoreBlock)">gen</a>(<a href="../antlr/ZeroOrMoreBlock.html" title="Class in antlr">ZeroOrMoreBlock</a> blk)</code></dt><dd class="description">Generate code for the given grammar element.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genASTDeclaration(antlr.AlternativeElement)">genASTDeclaration</a>(<a href="../antlr/AlternativeElement.html" title="Class in antlr">AlternativeElement</a> el)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genASTDeclaration(antlr.AlternativeElement,String)">genASTDeclaration</a>(<a href="../antlr/AlternativeElement.html" title="Class in antlr">AlternativeElement</a> el, String node_type)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genASTDeclaration(antlr.AlternativeElement,String,String)">genASTDeclaration</a>(<a href="../antlr/AlternativeElement.html" title="Class in antlr">AlternativeElement</a> el, String var_name, String node_type)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genAlt(antlr.Alternative,antlr.AlternativeBlock)">genAlt</a>(<a href="../antlr/Alternative.html" title="Class in antlr">Alternative</a> alt, <a href="../antlr/AlternativeBlock.html" title="Class in antlr">AlternativeBlock</a> blk)</code></dt><dd class="description">Generate an alternative.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genBitsets(antlr.collections.impl.Vector,int)">genBitsets</a>(<a href="../antlr/collections/impl/Vector.html" title="Class in antlr.collections.impl">Vector</a> bitsetList, int maxVocabulary)</code></dt><dd class="description">Generate all the bitsets to be used in the parser or lexer
Generate the raw bitset data like "long _tokenSet1_data[] = {...};"
and the BitSet object declarations like "BitSet _tokenSet1 = new BitSet(_tokenSet1_data);"
Note that most languages do not support object initialization inside a
class definition, so other code-generators may have to separate the
bitset declarations from the initializations (e.g., put the initializations
in the generated constructor instead).</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genBlockInitAction(antlr.AlternativeBlock)">genBlockInitAction</a>(<a href="../antlr/AlternativeBlock.html" title="Class in antlr">AlternativeBlock</a> blk)</code></dt><dd class="description">Generate the init action for a block, which may be a RuleBlock or a
plain AlternativeBLock.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genBlockPreamble(antlr.AlternativeBlock)">genBlockPreamble</a>(<a href="../antlr/AlternativeBlock.html" title="Class in antlr">AlternativeBlock</a> blk)</code></dt><dd class="description">Generate the header for a block, which may be a RuleBlock or a
plain AlternativeBLock.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genCases(antlr.collections.impl.BitSet)">genCases</a>(<a href="../antlr/collections/impl/BitSet.html" title="Class in antlr.collections.impl">BitSet</a> p)</code></dt><dd class="description">Generate a series of case statements that implement a BitSet test.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> <a href="../antlr/JavaBlockFinishingInfo.html" title="Class in antlr">JavaBlockFinishingInfo</a></code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genCommonBlock(antlr.AlternativeBlock,boolean)">genCommonBlock</a>(<a href="../antlr/AlternativeBlock.html" title="Class in antlr">AlternativeBlock</a> blk, boolean noTestForSingle)</code></dt><dd class="description">Generate common code for a block of alternatives; return a
postscript that needs to be generated at the end of the
block.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genHeader()">genHeader</a>()</code></dt><dd class="description">Generate a header that is common to all Java files </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genMatch(antlr.GrammarAtom)">genMatch</a>(<a href="../antlr/GrammarAtom.html" title="Class in antlr">GrammarAtom</a> atom)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genMatch(antlr.collections.impl.BitSet)">genMatch</a>(<a href="../antlr/collections/impl/BitSet.html" title="Class in antlr.collections.impl">BitSet</a> b)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genMatchUsingAtomText(antlr.GrammarAtom)">genMatchUsingAtomText</a>(<a href="../antlr/GrammarAtom.html" title="Class in antlr">GrammarAtom</a> atom)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genMatchUsingAtomTokenType(antlr.GrammarAtom)">genMatchUsingAtomTokenType</a>(<a href="../antlr/GrammarAtom.html" title="Class in antlr">GrammarAtom</a> atom)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genNextToken()">genNextToken</a>()</code></dt><dd class="description">Generate the nextToken() rule.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genRule(antlr.RuleSymbol,boolean,int)">genRule</a>(<a href="../antlr/RuleSymbol.html" title="Class in antlr">RuleSymbol</a> s, boolean startSymbol, int ruleNum)</code></dt><dd class="description">Gen a named rule block.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genSemPred(String,int)">genSemPred</a>(String pred, int line)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genSemPredMap()">genSemPredMap</a>()</code></dt><dd class="description">Write an array of Strings which are the semantic predicate
expressions.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genSynPred(antlr.SynPredBlock,String)">genSynPred</a>(<a href="../antlr/SynPredBlock.html" title="Class in antlr">SynPredBlock</a> blk, String lookaheadExpr)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genTokenASTNodeMap()">genTokenASTNodeMap</a>()</code></dt><dd class="description">Create and set Integer token type objects that map
to Java Class objects (which AST node to create).</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genTokenStrings()">genTokenStrings</a>()</code></dt><dd class="description">Generate a static array containing the names of the tokens,
indexed by the token type values.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#genTokenTypes(antlr.TokenManager)">genTokenTypes</a>(<a href="../antlr/TokenManager.html" title="Interface in antlr">TokenManager</a> tm)</code></dt><dd class="description">Generate the token types Java file </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getASTCreateString(String)">getASTCreateString</a>(String astCtorArgs)</code></dt><dd class="description">Get a string for an expression to generate creating of an AST node.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getASTCreateString(antlr.GrammarAtom,String)">getASTCreateString</a>(<a href="../antlr/GrammarAtom.html" title="Class in antlr">GrammarAtom</a> atom, String astCtorArgs)</code></dt><dd class="description">Get a string for an expression to generate creating of an AST node
</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getASTCreateString(antlr.collections.impl.Vector)">getASTCreateString</a>(<a href="../antlr/collections/impl/Vector.html" title="Class in antlr.collections.impl">Vector</a> v)</code></dt><dd class="description">Get a string for an expression to generate creation of an AST subtree.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getLookaheadTestExpression(antlr.Alternative,int)">getLookaheadTestExpression</a>(<a href="../antlr/Alternative.html" title="Class in antlr">Alternative</a> alt, int maxDepth)</code></dt><dd class="description">Generate a lookahead test expression for an alternate.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getLookaheadTestExpression(antlr.Lookahead[],int)">getLookaheadTestExpression</a>(<a href="../antlr/Lookahead.html" title="Class in antlr">Lookahead</a>[] look, int k)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getLookaheadTestTerm(int,antlr.collections.impl.BitSet)">getLookaheadTestTerm</a>(int k, <a href="../antlr/collections/impl/BitSet.html" title="Class in antlr.collections.impl">BitSet</a> p)</code></dt><dd class="description">Generate a depth==1 lookahead test expression given the BitSet.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#getRangeExpression(int,int[])">getRangeExpression</a>(int k, int[] elems)</code></dt><dd class="description">Return an expression for testing a contiguous renage of elements
</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected boolean</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#lookaheadIsEmpty(antlr.Alternative,int)">lookaheadIsEmpty</a>(<a href="../antlr/Alternative.html" title="Class in antlr">Alternative</a> alt, int maxDepth)</code></dt><dd class="description">Is the lookahead for this alt empty? </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#mapTreeId(String,antlr.ActionTransInfo)">mapTreeId</a>(String idParam, <a href="../antlr/ActionTransInfo.html" title="Class in antlr">ActionTransInfo</a> transInfo)</code></dt><dd class="description">Map an identifier to it's corresponding tree-node variable.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#processActionForSpecialSymbols(String,int,antlr.RuleBlock,antlr.ActionTransInfo)">processActionForSpecialSymbols</a>(String actionStr, int line, <a href="../antlr/RuleBlock.html" title="Class in antlr">RuleBlock</a> currentRule, <a href="../antlr/ActionTransInfo.html" title="Class in antlr">ActionTransInfo</a> tInfo)</code></dt><dd class="description">Lexically process $var and tree-specifiers in the action.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis"> void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#setupOutput(String)">setupOutput</a>(String className)</code></dt><dd class="description">This method exists so a subclass, namely VAJCodeGenerator,
can open the file in its own evil way.</dd></dl></td></tr></table></dd></dl><dl class="table container"><dd><table class="class summary" border="1" width="100%"><tr class="table sub header"><td colspan="2"><h3 class="table sub header">Methods inherited from class antlr.<a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></h3></td></tr><tr><td class="inherited"><a href="../antlr/CodeGenerator.html#_print(String)" title="_print(String)"><code class="member">_print</code></a>, <a href="../antlr/CodeGenerator.html#_printAction(String)" title="_printAction(String)"><code class="member">_printAction</code></a>, <a href="../antlr/CodeGenerator.html#_println(String)" title="_println(String)"><code class="member">_println</code></a>, <a href="../antlr/CodeGenerator.html#decodeLexerRuleName(String)" title="decodeLexerRuleName(String)"><code class="member">decodeLexerRuleName</code></a>, <a href="../antlr/CodeGenerator.html#elementsAreRange(int[])" title="elementsAreRange(int[])"><code class="member">elementsAreRange</code></a>, <a href="../antlr/CodeGenerator.html#encodeLexerRuleName(String)" title="encodeLexerRuleName(String)"><code class="member">encodeLexerRuleName</code></a>, <a href="../antlr/CodeGenerator.html#extractIdOfAction(String,int,int)" title="extractIdOfAction(String,int,int)"><code class="member">extractIdOfAction</code></a>, <a href="../antlr/CodeGenerator.html#extractIdOfAction(antlr.Token)" title="extractIdOfAction(Token)"><code class="member">extractIdOfAction</code></a>, <a href="../antlr/CodeGenerator.html#extractTypeOfAction(String,int,int)" title="extractTypeOfAction(String,int,int)"><code class="member">extractTypeOfAction</code></a>, <a href="../antlr/CodeGenerator.html#extractTypeOfAction(antlr.Token)" title="extractTypeOfAction(Token)"><code class="member">extractTypeOfAction</code></a>, <a href="../antlr/CodeGenerator.html#gen()" title="gen()"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.ActionElement)" title="gen(ActionElement)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.AlternativeBlock)" title="gen(AlternativeBlock)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.BlockEndElement)" title="gen(BlockEndElement)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.CharLiteralElement)" title="gen(CharLiteralElement)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.CharRangeElement)" title="gen(CharRangeElement)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.LexerGrammar)" title="gen(LexerGrammar)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.OneOrMoreBlock)" title="gen(OneOrMoreBlock)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.ParserGrammar)" title="gen(ParserGrammar)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.RuleRefElement)" title="gen(RuleRefElement)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.StringLiteralElement)" title="gen(StringLiteralElement)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.TokenRangeElement)" title="gen(TokenRangeElement)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.TokenRefElement)" title="gen(TokenRefElement)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.TreeElement)" title="gen(TreeElement)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.TreeWalkerGrammar)" title="gen(TreeWalkerGrammar)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.WildcardElement)" title="gen(WildcardElement)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#gen(antlr.ZeroOrMoreBlock)" title="gen(ZeroOrMoreBlock)"><code class="member">gen</code></a>, <a href="../antlr/CodeGenerator.html#genTokenInterchange(antlr.TokenManager)" title="genTokenInterchange(TokenManager)"><code class="member">genTokenInterchange</code></a>, <a href="../antlr/CodeGenerator.html#getASTCreateString(antlr.GrammarAtom,String)" title="getASTCreateString(GrammarAtom,String)"><code class="member">getASTCreateString</code></a>, <a href="../antlr/CodeGenerator.html#getASTCreateString(antlr.collections.impl.Vector)" title="getASTCreateString(Vector)"><code class="member">getASTCreateString</code></a>, <a href="../antlr/CodeGenerator.html#getBitsetName(int)" title="getBitsetName(int)"><code class="member">getBitsetName</code></a>, <a href="../antlr/CodeGenerator.html#getFIRSTBitSet(String,int)" title="getFIRSTBitSet(String,int)"><code class="member">getFIRSTBitSet</code></a>, <a href="../antlr/CodeGenerator.html#getFOLLOWBitSet(String,int)" title="getFOLLOWBitSet(String,int)"><code class="member">getFOLLOWBitSet</code></a>, <a href="../antlr/CodeGenerator.html#mapTreeId(String,antlr.ActionTransInfo)" title="mapTreeId(String,ActionTransInfo)"><code class="member">mapTreeId</code></a>, <a href="../antlr/CodeGenerator.html#markBitsetForGen(antlr.collections.impl.BitSet)" title="markBitsetForGen(BitSet)"><code class="member">markBitsetForGen</code></a>, <a href="../antlr/CodeGenerator.html#print(String)" title="print(String)"><code class="member">print</code></a>, <a href="../antlr/CodeGenerator.html#printAction(String)" title="printAction(String)"><code class="member">printAction</code></a>, <a href="../antlr/CodeGenerator.html#printTabs()" title="printTabs()"><code class="member">printTabs</code></a>, <a href="../antlr/CodeGenerator.html#println(String)" title="println(String)"><code class="member">println</code></a>, <a href="../antlr/CodeGenerator.html#processActionForSpecialSymbols(String,int,antlr.RuleBlock,antlr.ActionTransInfo)" title="processActionForSpecialSymbols(String,int,RuleBlock,ActionTransInfo)"><code class="member">processActionForSpecialSymbols</code></a>, <a href="../antlr/CodeGenerator.html#processStringForASTConstructor(String)" title="processStringForASTConstructor(String)"><code class="member">processStringForASTConstructor</code></a>, <a href="../antlr/CodeGenerator.html#removeAssignmentFromDeclaration(String)" title="removeAssignmentFromDeclaration(String)"><code class="member">removeAssignmentFromDeclaration</code></a>, <a href="../antlr/CodeGenerator.html#reverseLexerRuleName(String)" title="reverseLexerRuleName(String)"><code class="member">reverseLexerRuleName</code></a>, <a href="../antlr/CodeGenerator.html#setAnalyzer(antlr.LLkGrammarAnalyzer)" title="setAnalyzer(LLkGrammarAnalyzer)"><code class="member">setAnalyzer</code></a>, <a href="../antlr/CodeGenerator.html#setBehavior(antlr.DefineGrammarSymbols)" title="setBehavior(DefineGrammarSymbols)"><code class="member">setBehavior</code></a>, <a href="../antlr/CodeGenerator.html#setGrammar(antlr.Grammar)" title="setGrammar(Grammar)"><code class="member">setGrammar</code></a>, <a href="../antlr/CodeGenerator.html#setTool(antlr.Tool)" title="setTool(Tool)"><code class="member">setTool</code></a></td></tr></table></dd></dl><a name="detail-fields" id="detail-fields"/><h2 class="section header">Field Details</h2><div class="section"><a name="NONUNIQUE" id="NONUNIQUE"/><div class="member detail outer"><h3 class="member detail name">NONUNIQUE</h3><pre class="member detail synopsis">protected static final String NONUNIQUE</pre><blockquote class="member detail name"><div class="member detail description">Special value used to mark duplicate in treeVariableMap </div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="astVarNumber" id="astVarNumber"/><div class="member detail outer"><h3 class="member detail name">astVarNumber</h3><pre class="member detail synopsis">(package private) int astVarNumber</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="caseSizeThreshold" id="caseSizeThreshold"/><div class="member detail outer"><h3 class="member detail name">caseSizeThreshold</h3><pre class="member detail synopsis">public static final int caseSizeThreshold</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="member detail thrown list"><dl><dt class="member detail thrown header"><b>Field Value:</b></dt><dd class="member detail thrown item">127</dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="commonExtraArgs" id="commonExtraArgs"/><div class="member detail outer"><h3 class="member detail name">commonExtraArgs</h3><pre class="member detail synopsis">(package private) String commonExtraArgs</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="commonExtraParams" id="commonExtraParams"/><div class="member detail outer"><h3 class="member detail name">commonExtraParams</h3><pre class="member detail synopsis">(package private) String commonExtraParams</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="commonLocalVars" id="commonLocalVars"/><div class="member detail outer"><h3 class="member detail name">commonLocalVars</h3><pre class="member detail synopsis">(package private) String commonLocalVars</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="currentASTResult" id="currentASTResult"/><div class="member detail outer"><h3 class="member detail name">currentASTResult</h3><pre class="member detail synopsis">(package private) String currentASTResult</pre><blockquote class="member detail name"><div class="member detail description">Tracks the rule or labeled subrule being generated. Used for
AST generation. </div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="currentRule" id="currentRule"/><div class="member detail outer"><h3 class="member detail name">currentRule</h3><pre class="member detail synopsis">(package private) <a href="../antlr/RuleBlock.html" title="Class in antlr">RuleBlock</a> currentRule</pre><blockquote class="member detail name"><div class="member detail description">Tracks the rule being generated. Used for mapTreeId </div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="declaredASTVariables" id="declaredASTVariables"/><div class="member detail outer"><h3 class="member detail name">declaredASTVariables</h3><pre class="member detail synopsis">(package private) Hashtable declaredASTVariables</pre><blockquote class="member detail name"><div class="member detail description">Used to keep track of which AST variables have been defined in a rule
(except for the #rule_name and #rule_name_in var's
</div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="exceptionThrown" id="exceptionThrown"/><div class="member detail outer"><h3 class="member detail name">exceptionThrown</h3><pre class="member detail synopsis">(package private) String exceptionThrown</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genAST" id="genAST"/><div class="member detail outer"><h3 class="member detail name">genAST</h3><pre class="member detail synopsis">protected boolean genAST</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="labeledElementASTType" id="labeledElementASTType"/><div class="member detail outer"><h3 class="member detail name">labeledElementASTType</h3><pre class="member detail synopsis">(package private) String labeledElementASTType</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="labeledElementInit" id="labeledElementInit"/><div class="member detail outer"><h3 class="member detail name">labeledElementInit</h3><pre class="member detail synopsis">(package private) String labeledElementInit</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="labeledElementType" id="labeledElementType"/><div class="member detail outer"><h3 class="member detail name">labeledElementType</h3><pre class="member detail synopsis">(package private) String labeledElementType</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="lt1Value" id="lt1Value"/><div class="member detail outer"><h3 class="member detail name">lt1Value</h3><pre class="member detail synopsis">(package private) String lt1Value</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="saveText" id="saveText"/><div class="member detail outer"><h3 class="member detail name">saveText</h3><pre class="member detail synopsis">protected boolean saveText</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="syntacticPredLevel" id="syntacticPredLevel"/><div class="member detail outer"><h3 class="member detail name">syntacticPredLevel</h3><pre class="member detail synopsis">protected int syntacticPredLevel</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="throwNoViable" id="throwNoViable"/><div class="member detail outer"><h3 class="member detail name">throwNoViable</h3><pre class="member detail synopsis">(package private) String throwNoViable</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="treeVariableMap" id="treeVariableMap"/><div class="member detail outer"><h3 class="member detail name">treeVariableMap</h3><pre class="member detail synopsis">(package private) Hashtable treeVariableMap</pre><blockquote class="member detail name"><div class="member detail description">Mapping between the ids used in the current alt, and the
names of variables used to represent their AST values.
</div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div></div><a name="detail-constructors" id="detail-constructors"/><h2 class="section header">Constructor Details</h2><div class="section"><a name="JavaCodeGenerator()" id="JavaCodeGenerator()"/><div class="member detail outer"><h3 class="member detail name">JavaCodeGenerator</h3><pre class="member detail synopsis">public JavaCodeGenerator()</pre><blockquote class="member detail name"><div class="member detail description">Create a Java code-generator using the given Grammar.
The caller must still call setTool, setBehavior, and setAnalyzer
before generating code.
</div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div></div><a name="detail-methods" id="detail-methods"/><h2 class="section header">Method Details</h2><div class="section"><a name="addSemPred(String)" id="addSemPred(String)"/><div class="member detail outer"><h3 class="member detail name">addSemPred</h3><pre class="member detail synopsis">protected int addSemPred(String predicate)</pre><blockquote class="member detail name"><div class="member detail description">Adds a semantic predicate string to the sem pred vector
These strings will be used to build an array of sem pred names
when building a debugging parser. This method should only be
called when the debug option is specified
</div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="exitIfError()" id="exitIfError()"/><div class="member detail outer"><h3 class="member detail name">exitIfError</h3><pre class="member detail synopsis">public void exitIfError()</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen()" id="gen()"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen()</pre><blockquote class="member detail name"><div class="member detail description">Generate the parser, lexer, treeparser, and token types in Java </div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen()">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.ActionElement)" id="gen(antlr.ActionElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/ActionElement.html" title="Class in antlr">ActionElement</a> action)</pre><blockquote class="member detail name"><div class="member detail description">Generate code for the given grammar element.
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.ActionElement)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.AlternativeBlock)" id="gen(antlr.AlternativeBlock)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/AlternativeBlock.html" title="Class in antlr">AlternativeBlock</a> blk)</pre><blockquote class="member detail name"><div class="member detail description">Generate code for the given grammar element.
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.AlternativeBlock)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">blk</code><span class="separator"> - </span><span class="description">The "x|y|z|..." block to generate</span></dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.BlockEndElement)" id="gen(antlr.BlockEndElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/BlockEndElement.html" title="Class in antlr">BlockEndElement</a> end)</pre><blockquote class="member detail name"><div class="member detail description">Generate code for the given grammar element.
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.BlockEndElement)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.CharLiteralElement)" id="gen(antlr.CharLiteralElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/CharLiteralElement.html" title="Class in antlr">CharLiteralElement</a> atom)</pre><blockquote class="member detail name"><div class="member detail description">Generate code for the given grammar element.
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.CharLiteralElement)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.CharRangeElement)" id="gen(antlr.CharRangeElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/CharRangeElement.html" title="Class in antlr">CharRangeElement</a> r)</pre><blockquote class="member detail name"><div class="member detail description">Generate code for the given grammar element.
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.CharRangeElement)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.LexerGrammar)" id="gen(antlr.LexerGrammar)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/LexerGrammar.html" title="Class in antlr">LexerGrammar</a> g)
throws IOException</pre><blockquote class="member detail name"><div class="member detail description">Generate the lexer Java file </div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.LexerGrammar)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.OneOrMoreBlock)" id="gen(antlr.OneOrMoreBlock)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/OneOrMoreBlock.html" title="Class in antlr">OneOrMoreBlock</a> blk)</pre><blockquote class="member detail name"><div class="member detail description">Generate code for the given grammar element.
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.OneOrMoreBlock)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">blk</code><span class="separator"> - </span><span class="description">The (...)+ block to generate</span></dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.ParserGrammar)" id="gen(antlr.ParserGrammar)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/ParserGrammar.html" title="Class in antlr">ParserGrammar</a> g)
throws IOException</pre><blockquote class="member detail name"><div class="member detail description">Generate the parser Java file </div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.ParserGrammar)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.RuleRefElement)" id="gen(antlr.RuleRefElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/RuleRefElement.html" title="Class in antlr">RuleRefElement</a> rr)</pre><blockquote class="member detail name"><div class="member detail description">Generate code for the given grammar element.
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.RuleRefElement)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.StringLiteralElement)" id="gen(antlr.StringLiteralElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/StringLiteralElement.html" title="Class in antlr">StringLiteralElement</a> atom)</pre><blockquote class="member detail name"><div class="member detail description">Generate code for the given grammar element.
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.StringLiteralElement)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.TokenRangeElement)" id="gen(antlr.TokenRangeElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/TokenRangeElement.html" title="Class in antlr">TokenRangeElement</a> r)</pre><blockquote class="member detail name"><div class="member detail description">Generate code for the given grammar element.
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.TokenRangeElement)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.TokenRefElement)" id="gen(antlr.TokenRefElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/TokenRefElement.html" title="Class in antlr">TokenRefElement</a> atom)</pre><blockquote class="member detail name"><div class="member detail description">Generate code for the given grammar element.
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.TokenRefElement)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.TreeElement)" id="gen(antlr.TreeElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/TreeElement.html" title="Class in antlr">TreeElement</a> t)</pre><blockquote class="member detail name"><div class="member detail description">Generate code for the given grammar element.
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.TreeElement)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.TreeWalkerGrammar)" id="gen(antlr.TreeWalkerGrammar)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/TreeWalkerGrammar.html" title="Class in antlr">TreeWalkerGrammar</a> g)
throws IOException</pre><blockquote class="member detail name"><div class="member detail description">Generate the tree-parser Java file </div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.TreeWalkerGrammar)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.WildcardElement)" id="gen(antlr.WildcardElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/WildcardElement.html" title="Class in antlr">WildcardElement</a> wc)</pre><blockquote class="member detail name"><div class="member detail description">Generate code for the given grammar element.
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.WildcardElement)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">wc</code><span class="separator"> - </span><span class="description">The wildcard element to generate</span></dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="gen(antlr.ZeroOrMoreBlock)" id="gen(antlr.ZeroOrMoreBlock)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public void gen(<a href="../antlr/ZeroOrMoreBlock.html" title="Class in antlr">ZeroOrMoreBlock</a> blk)</pre><blockquote class="member detail name"><div class="member detail description">Generate code for the given grammar element.
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#gen(antlr.ZeroOrMoreBlock)">gen</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">blk</code><span class="separator"> - </span><span class="description">The (...)* block to generate</span></dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genASTDeclaration(antlr.AlternativeElement)" id="genASTDeclaration(antlr.AlternativeElement)"/><div class="member detail outer"><h3 class="member detail name">genASTDeclaration</h3><pre class="member detail synopsis">protected void genASTDeclaration(<a href="../antlr/AlternativeElement.html" title="Class in antlr">AlternativeElement</a> el)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genASTDeclaration(antlr.AlternativeElement,String)" id="genASTDeclaration(antlr.AlternativeElement,String)"/><div class="member detail outer"><h3 class="member detail name">genASTDeclaration</h3><pre class="member detail synopsis">protected void genASTDeclaration(<a href="../antlr/AlternativeElement.html" title="Class in antlr">AlternativeElement</a> el,
String node_type)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genASTDeclaration(antlr.AlternativeElement,String,String)" id="genASTDeclaration(antlr.AlternativeElement,String,String)"/><div class="member detail outer"><h3 class="member detail name">genASTDeclaration</h3><pre class="member detail synopsis">protected void genASTDeclaration(<a href="../antlr/AlternativeElement.html" title="Class in antlr">AlternativeElement</a> el,
String var_name,
String node_type)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genAlt(antlr.Alternative,antlr.AlternativeBlock)" id="genAlt(antlr.Alternative,antlr.AlternativeBlock)"/><div class="member detail outer"><h3 class="member detail name">genAlt</h3><pre class="member detail synopsis">protected void genAlt(<a href="../antlr/Alternative.html" title="Class in antlr">Alternative</a> alt,
<a href="../antlr/AlternativeBlock.html" title="Class in antlr">AlternativeBlock</a> blk)</pre><blockquote class="member detail name"><div class="member detail description">Generate an alternative.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">alt</code><span class="separator"> - </span><span class="description">The alternative to generate</span></dd><dd class="item"><code class="name">blk</code><span class="separator"> - </span><span class="description">The block to which the alternative belongs</span></dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genBitsets(antlr.collections.impl.Vector,int)" id="genBitsets(antlr.collections.impl.Vector,int)"/><div class="member detail outer"><h3 class="member detail name">genBitsets</h3><pre class="member detail synopsis">protected void genBitsets(<a href="../antlr/collections/impl/Vector.html" title="Class in antlr.collections.impl">Vector</a> bitsetList,
int maxVocabulary)</pre><blockquote class="member detail name"><div class="member detail description">Generate all the bitsets to be used in the parser or lexer
Generate the raw bitset data like "long _tokenSet1_data[] = {...};"
and the BitSet object declarations like "BitSet _tokenSet1 = new BitSet(_tokenSet1_data);"
Note that most languages do not support object initialization inside a
class definition, so other code-generators may have to separate the
bitset declarations from the initializations (e.g., put the initializations
in the generated constructor instead).
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">bitsetList</code><span class="separator"> - </span><span class="description">The list of bitsets to generate.</span></dd><dd class="item"><code class="name">maxVocabulary</code><span class="separator"> - </span><span class="description">Ensure that each generated bitset can contain at least this value.</span></dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genBlockInitAction(antlr.AlternativeBlock)" id="genBlockInitAction(antlr.AlternativeBlock)"/><div class="member detail outer"><h3 class="member detail name">genBlockInitAction</h3><pre class="member detail synopsis">protected void genBlockInitAction(<a href="../antlr/AlternativeBlock.html" title="Class in antlr">AlternativeBlock</a> blk)</pre><blockquote class="member detail name"><div class="member detail description">Generate the init action for a block, which may be a RuleBlock or a
plain AlternativeBLock.
</div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genBlockPreamble(antlr.AlternativeBlock)" id="genBlockPreamble(antlr.AlternativeBlock)"/><div class="member detail outer"><h3 class="member detail name">genBlockPreamble</h3><pre class="member detail synopsis">protected void genBlockPreamble(<a href="../antlr/AlternativeBlock.html" title="Class in antlr">AlternativeBlock</a> blk)</pre><blockquote class="member detail name"><div class="member detail description">Generate the header for a block, which may be a RuleBlock or a
plain AlternativeBLock. This generates any variable declarations
and syntactic-predicate-testing variables.
</div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genCases(antlr.collections.impl.BitSet)" id="genCases(antlr.collections.impl.BitSet)"/><div class="member detail outer"><h3 class="member detail name">genCases</h3><pre class="member detail synopsis">protected void genCases(<a href="../antlr/collections/impl/BitSet.html" title="Class in antlr.collections.impl">BitSet</a> p)</pre><blockquote class="member detail name"><div class="member detail description">Generate a series of case statements that implement a BitSet test.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">p</code><span class="separator"> - </span><span class="description">The Bitset for which cases are to be generated</span></dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genCommonBlock(antlr.AlternativeBlock,boolean)" id="genCommonBlock(antlr.AlternativeBlock,boolean)"/><div class="member detail outer"><h3 class="member detail name">genCommonBlock</h3><pre class="member detail synopsis">public <a href="../antlr/JavaBlockFinishingInfo.html" title="Class in antlr">JavaBlockFinishingInfo</a> genCommonBlock(<a href="../antlr/AlternativeBlock.html" title="Class in antlr">AlternativeBlock</a> blk,
boolean noTestForSingle)</pre><blockquote class="member detail name"><div class="member detail description">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. If the
grammar is a lexer, then generate alternatives in an order
where alternatives requiring deeper lookahead are generated
first, and EOF in the lookahead set reduces the depth of
the lookahead. @param blk The block to generate @param
noTestForSingle If true, then it does not generate a test
for a single alternative.
</div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genHeader()" id="genHeader()"/><div class="member detail outer"><h3 class="member detail name">genHeader</h3><pre class="member detail synopsis">protected void genHeader()</pre><blockquote class="member detail name"><div class="member detail description">Generate a header that is common to all Java files </div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genMatch(antlr.GrammarAtom)" id="genMatch(antlr.GrammarAtom)"/><div class="member detail outer"><h3 class="member detail name">genMatch</h3><pre class="member detail synopsis">protected void genMatch(<a href="../antlr/GrammarAtom.html" title="Class in antlr">GrammarAtom</a> atom)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genMatch(antlr.collections.impl.BitSet)" id="genMatch(antlr.collections.impl.BitSet)"/><div class="member detail outer"><h3 class="member detail name">genMatch</h3><pre class="member detail synopsis">protected void genMatch(<a href="../antlr/collections/impl/BitSet.html" title="Class in antlr.collections.impl">BitSet</a> b)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genMatchUsingAtomText(antlr.GrammarAtom)" id="genMatchUsingAtomText(antlr.GrammarAtom)"/><div class="member detail outer"><h3 class="member detail name">genMatchUsingAtomText</h3><pre class="member detail synopsis">protected void genMatchUsingAtomText(<a href="../antlr/GrammarAtom.html" title="Class in antlr">GrammarAtom</a> atom)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genMatchUsingAtomTokenType(antlr.GrammarAtom)" id="genMatchUsingAtomTokenType(antlr.GrammarAtom)"/><div class="member detail outer"><h3 class="member detail name">genMatchUsingAtomTokenType</h3><pre class="member detail synopsis">protected void genMatchUsingAtomTokenType(<a href="../antlr/GrammarAtom.html" title="Class in antlr">GrammarAtom</a> atom)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genNextToken()" id="genNextToken()"/><div class="member detail outer"><h3 class="member detail name">genNextToken</h3><pre class="member detail synopsis">public void genNextToken()</pre><blockquote class="member detail name"><div class="member detail description">Generate the nextToken() rule. nextToken() is a synthetic
lexer rule that is the implicit OR of all user-defined
lexer rules.
</div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genRule(antlr.RuleSymbol,boolean,int)" id="genRule(antlr.RuleSymbol,boolean,int)"/><div class="member detail outer"><h3 class="member detail name">genRule</h3><pre class="member detail synopsis">public void genRule(<a href="../antlr/RuleSymbol.html" title="Class in antlr">RuleSymbol</a> s,
boolean startSymbol,
int ruleNum)</pre><blockquote class="member detail name"><div class="member detail description">Gen a named rule block.
ASTs are generated for each element of an alternative unless
the rule or the alternative have a '!' modifier.
If an alternative defeats the default tree construction, it
must set <rule>_AST to the root of the returned AST.
Each alternative that does automatic tree construction, builds
up root and child list pointers in an ASTPair structure.
A rule finishes by setting the returnAST variable from the
ASTPair.
</rule></div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">startSymbol</code><span class="separator"> - </span><span class="description">true if the rule is a start symbol (i.e., not referenced elsewhere)</span></dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genSemPred(String,int)" id="genSemPred(String,int)"/><div class="member detail outer"><h3 class="member detail name">genSemPred</h3><pre class="member detail synopsis">protected void genSemPred(String pred,
int line)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genSemPredMap()" id="genSemPredMap()"/><div class="member detail outer"><h3 class="member detail name">genSemPredMap</h3><pre class="member detail synopsis">protected void genSemPredMap()</pre><blockquote class="member detail name"><div class="member detail description">Write an array of Strings which are the semantic predicate
expressions. The debugger will reference them by number only
</div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genSynPred(antlr.SynPredBlock,String)" id="genSynPred(antlr.SynPredBlock,String)"/><div class="member detail outer"><h3 class="member detail name">genSynPred</h3><pre class="member detail synopsis">protected void genSynPred(<a href="../antlr/SynPredBlock.html" title="Class in antlr">SynPredBlock</a> blk,
String lookaheadExpr)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genTokenASTNodeMap()" id="genTokenASTNodeMap()"/><div class="member detail outer"><h3 class="member detail name">genTokenASTNodeMap</h3><pre class="member detail synopsis">protected void genTokenASTNodeMap()</pre><blockquote class="member detail name"><div class="member detail description">Create and set Integer token type objects that map
to Java Class objects (which AST node to create).
</div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genTokenStrings()" id="genTokenStrings()"/><div class="member detail outer"><h3 class="member detail name">genTokenStrings</h3><pre class="member detail synopsis">public void genTokenStrings()</pre><blockquote class="member detail name"><div class="member detail description">Generate a static array containing the names of the tokens,
indexed by the token type values. This static array is used
to format error messages so that the token identifers or literal
strings are displayed instead of the token numbers.
If a lexical rule has a paraphrase, use it rather than the
token label.
</div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="genTokenTypes(antlr.TokenManager)" id="genTokenTypes(antlr.TokenManager)"/><div class="member detail outer"><h3 class="member detail name">genTokenTypes</h3><pre class="member detail synopsis">protected void genTokenTypes(<a href="../antlr/TokenManager.html" title="Interface in antlr">TokenManager</a> tm)
throws IOException</pre><blockquote class="member detail name"><div class="member detail description">Generate the token types Java file </div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getASTCreateString(String)" id="getASTCreateString(String)"/><div class="member detail outer"><h3 class="member detail name">getASTCreateString</h3><pre class="member detail synopsis">public String getASTCreateString(String astCtorArgs)</pre><blockquote class="member detail name"><div class="member detail description">Get a string for an expression to generate creating of an AST node.
Parse the first (possibly only) argument looking for the token type.
If the token type is a valid token symbol, ask for it's AST node type
and add to the end if only 2 arguments. The forms are #[T], #[T,"t"],
and as of 2.7.2 #[T,"t",ASTclassname].
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getASTCreateString(antlr.GrammarAtom,String)" id="getASTCreateString(antlr.GrammarAtom,String)"/><div class="member detail outer"><h3 class="member detail name">getASTCreateString</h3><pre class="member detail synopsis">public String getASTCreateString(<a href="../antlr/GrammarAtom.html" title="Class in antlr">GrammarAtom</a> atom,
String astCtorArgs)</pre><blockquote class="member detail name"><div class="member detail description">Get a string for an expression to generate creating of an AST node
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#getASTCreateString(antlr.GrammarAtom,String)">getASTCreateString</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">atom</code><span class="separator"> - </span><span class="description">The grammar node for which you are creating the node</span></dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getASTCreateString(antlr.collections.impl.Vector)" id="getASTCreateString(antlr.collections.impl.Vector)"/><div class="member detail outer"><h3 class="member detail name">getASTCreateString</h3><pre class="member detail synopsis">public String getASTCreateString(<a href="../antlr/collections/impl/Vector.html" title="Class in antlr.collections.impl">Vector</a> v)</pre><blockquote class="member detail name"><div class="member detail description">Get a string for an expression to generate creation of an AST subtree.
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#getASTCreateString(antlr.collections.impl.Vector)">getASTCreateString</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">v</code><span class="separator"> - </span><span class="description">A Vector of String, where each element is an expression in the target language yielding an AST node.</span></dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getLookaheadTestExpression(antlr.Alternative,int)" id="getLookaheadTestExpression(antlr.Alternative,int)"/><div class="member detail outer"><h3 class="member detail name">getLookaheadTestExpression</h3><pre class="member detail synopsis">protected String getLookaheadTestExpression(<a href="../antlr/Alternative.html" title="Class in antlr">Alternative</a> alt,
int maxDepth)</pre><blockquote class="member detail name"><div class="member detail description">Generate a lookahead test expression for an alternate. This
will be a series of tests joined by '&&' and enclosed by '()',
the number of such tests being determined by the depth of the lookahead.
</div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getLookaheadTestExpression(antlr.Lookahead[],int)" id="getLookaheadTestExpression(antlr.Lookahead[],int)"/><div class="member detail outer"><h3 class="member detail name">getLookaheadTestExpression</h3><pre class="member detail synopsis">protected String getLookaheadTestExpression(<a href="../antlr/Lookahead.html" title="Class in antlr">Lookahead</a>[] look,
int k)</pre><blockquote class="member detail name"><div class="member detail description"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getLookaheadTestTerm(int,antlr.collections.impl.BitSet)" id="getLookaheadTestTerm(int,antlr.collections.impl.BitSet)"/><div class="member detail outer"><h3 class="member detail name">getLookaheadTestTerm</h3><pre class="member detail synopsis">protected String getLookaheadTestTerm(int k,
<a href="../antlr/collections/impl/BitSet.html" title="Class in antlr.collections.impl">BitSet</a> p)</pre><blockquote class="member detail name"><div class="member detail description">Generate a depth==1 lookahead test expression given the BitSet.
This may be one of:
1) a series of 'x==X||' tests
2) a range test using >= && <= where possible,
3) a bitset membership test for complex comparisons
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">k</code><span class="separator"> - </span><span class="description">The lookahead level</span></dd><dd class="item"><code class="name">p</code><span class="separator"> - </span><span class="description">The lookahead set for level k</span></dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="getRangeExpression(int,int[])" id="getRangeExpression(int,int[])"/><div class="member detail outer"><h3 class="member detail name">getRangeExpression</h3><pre class="member detail synopsis">public String getRangeExpression(int k,
int[] elems)</pre><blockquote class="member detail name"><div class="member detail description">Return an expression for testing a contiguous renage of elements
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">k</code><span class="separator"> - </span><span class="description">The lookahead level</span></dd><dd class="item"><code class="name">elems</code><span class="separator"> - </span><span class="description">The elements representing the set, usually from BitSet.toArray().</span></dd></dl></div><div class="member detail return list"><dl><dt class="member detail return header"><b>Returns:</b></dt><dd class="member detail return item">String containing test expression.</dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="lookaheadIsEmpty(antlr.Alternative,int)" id="lookaheadIsEmpty(antlr.Alternative,int)"/><div class="member detail outer"><h3 class="member detail name">lookaheadIsEmpty</h3><pre class="member detail synopsis">protected boolean lookaheadIsEmpty(<a href="../antlr/Alternative.html" title="Class in antlr">Alternative</a> alt,
int maxDepth)</pre><blockquote class="member detail name"><div class="member detail description">Is the lookahead for this alt empty? </div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="mapTreeId(String,antlr.ActionTransInfo)" id="mapTreeId(String,antlr.ActionTransInfo)"/><div class="member detail outer"><h3 class="member detail name">mapTreeId</h3><pre class="member detail synopsis">public String mapTreeId(String idParam,
<a href="../antlr/ActionTransInfo.html" title="Class in antlr">ActionTransInfo</a> transInfo)</pre><blockquote class="member detail name"><div class="member detail description">Map an identifier to it's corresponding tree-node variable.
This is context-sensitive, depending on the rule and alternative
being generated
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#mapTreeId(String,antlr.ActionTransInfo)">mapTreeId</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">idParam</code><span class="separator"> - </span><span class="description">The identifier name to map</span></dd></dl></div><div class="member detail return list"><dl><dt class="member detail return header"><b>Returns:</b></dt><dd class="member detail return item">The mapped id (which may be the same as the input), or null if the mapping is invalid due to duplicates</dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="processActionForSpecialSymbols(String,int,antlr.RuleBlock,antlr.ActionTransInfo)" id="processActionForSpecialSymbols(String,int,antlr.RuleBlock,antlr.ActionTransInfo)"/><div class="member detail outer"><h3 class="member detail name">processActionForSpecialSymbols</h3><pre class="member detail synopsis">protected String processActionForSpecialSymbols(String actionStr,
int line,
<a href="../antlr/RuleBlock.html" title="Class in antlr">RuleBlock</a> currentRule,
<a href="../antlr/ActionTransInfo.html" title="Class in antlr">ActionTransInfo</a> tInfo)</pre><blockquote class="member detail name"><div class="member detail description">Lexically process $var and tree-specifiers in the action.
This will replace #id and #(...) with the appropriate
function calls and/or variables etc...
</div><dl class="member detail overridden list"><dt class="member detail overridden header"><b>Overrides:</b></dt><dd class="member detail overridden item"><a href="../antlr/CodeGenerator.html#processActionForSpecialSymbols(String,int,antlr.RuleBlock,antlr.ActionTransInfo)">processActionForSpecialSymbols</a> in interface <a href="../antlr/CodeGenerator.html" title="Class in antlr">CodeGenerator</a></dd></dl><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div><hr/><a name="setupOutput(String)" id="setupOutput(String)"/><div class="member detail outer"><h3 class="member detail name">setupOutput</h3><pre class="member detail synopsis">public void setupOutput(String className)
throws IOException</pre><blockquote class="member detail name"><div class="member detail description">This method exists so a subclass, namely VAJCodeGenerator,
can open the file in its own evil way. JavaCodeGenerator
simply opens a text file...
</div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"></div></blockquote></div></div><p class="navbar bottom spacer"> </p><table class="navbar div bottom"><tr><td><div class="navbar div top"><span class="navbar item enabled"><a href="../overview-summary.html">Overview</a></span> <span class="navbar item enabled"><a href="package-summary.html">Package</a></span> <span class="navbar item active">Class</span> <span class="navbar item enabled"><a href="JavaCodeGenerator-uses.html">Use</a></span> <span class="navbar item enabled"><a href="tree.html">Tree</a></span> <span class="navbar item enabled"><a href="../alphaindex-1.html">Index</a></span> <span class="navbar item enabled"><a href="../deprecated.html">Deprecated</a></span> <span class="navbar item enabled"><a href="../about.html">About</a></span></div></td></tr></table></body></html>