|
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-2.7.4/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>CodeGenerator (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.CodeGenerator class"/><meta name="keywords" content="antlrTool"/><meta name="keywords" content="tabs"/><meta name="keywords" content="currentOutput"/><meta name="keywords" content="grammar"/><meta name="keywords" content="bitsetsUsed"/><meta name="keywords" content="behavior"/><meta name="keywords" content="analyzer"/><meta name="keywords" content="charFormatter"/><meta name="keywords" content="DEBUG_CODE_GENERATOR"/><meta name="keywords" content="DEFAULT_MAKE_SWITCH_THRESHOLD"/><meta name="keywords" content="DEFAULT_BITSET_TEST_THRESHOLD"/><meta name="keywords" content="BITSET_OPTIMIZE_INIT_THRESHOLD"/><meta name="keywords" content="makeSwitchThreshold"/><meta name="keywords" content="bitsetTestThreshold"/><meta name="keywords" content="TokenTypesFileSuffix"/><meta name="keywords" content="TokenTypesFileExt"/><meta name="keywords" content="_print()"/><meta name="keywords" content="_printAction()"/><meta name="keywords" content="_println()"/><meta name="keywords" content="elementsAreRange()"/><meta name="keywords" content="extractIdOfAction()"/><meta name="keywords" content="extractTypeOfAction()"/><meta name="keywords" content="gen()"/><meta name="keywords" content="genTokenInterchange()"/><meta name="keywords" content="processStringForASTConstructor()"/><meta name="keywords" content="getASTCreateString()"/><meta name="keywords" content="getBitsetName()"/><meta name="keywords" content="encodeLexerRuleName()"/><meta name="keywords" content="decodeLexerRuleName()"/><meta name="keywords" content="mapTreeId()"/><meta name="keywords" content="markBitsetForGen()"/><meta name="keywords" content="print()"/><meta name="keywords" content="printAction()"/><meta name="keywords" content="println()"/><meta name="keywords" content="printTabs()"/><meta name="keywords" content="processActionForSpecialSymbols()"/><meta name="keywords" content="getFOLLOWBitSet()"/><meta name="keywords" content="getFIRSTBitSet()"/><meta name="keywords" content="removeAssignmentFromDeclaration()"/><meta name="keywords" content="reverseLexerRuleName()"/><meta name="keywords" content="setAnalyzer()"/><meta name="keywords" content="setBehavior()"/><meta name="keywords" content="setGrammar()"/><meta name="keywords" content="setTool()"/><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="CodeGenerator-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/CharStreamIOException.html">Prev Class</a> | <a href="../antlr/CommonAST.html">Next Class</a></td><td class="navi"><a href="../index.html" title="Show in a frameset" target="_top">Frames</a> | <a href="CodeGenerator.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 CodeGenerator</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>antlr.CodeGenerator</code></li><li></li></ul></li></ul></div><dl class="class subclasses"><dt class="class subclasses header"><b>Known Direct Subclasses:</b></dt><dd class="class subclasses header"><a href="../antlr/CppCodeGenerator.html" title="Class in antlr">CppCodeGenerator</a>, <a href="../antlr/CSharpCodeGenerator.html" title="Class in antlr">CSharpCodeGenerator</a>, <a href="../antlr/DiagnosticCodeGenerator.html" title="Class in antlr">DiagnosticCodeGenerator</a>, <a href="../antlr/DocBookCodeGenerator.html" title="Class in antlr">DocBookCodeGenerator</a>, <a href="../antlr/HTMLCodeGenerator.html" title="Class in antlr">HTMLCodeGenerator</a>, <a href="../antlr/JavaCodeGenerator.html" title="Class in antlr">JavaCodeGenerator</a></dd></b></dt></dl><hr/><div class="class synopsis outer"><div class="class synopsis declaration"><code>public abstract class <b class="class synopsis name">CodeGenerator</b></code></div><div class="class synopsis superclass"><code>extends <a href="file:/usr/share/javadoc/java/java/lang/Object.html" title="Class in ">Object</a></code></div></div><hr/><div class="class description">A generic ANTLR code generator. All code generators
Derive from this class.
<p/>
A CodeGenerator knows about a Grammar data structure and
a grammar analyzer. The Grammar is walked to generate the
appropriate code for both a parser and lexer (if present).
This interface may change slightly so that the lexer is
itself living inside of a Grammar object (in which case,
this class generates only one recognizer). The main method
to call is <tt>gen()</tt>, which initiates all code gen.
<p/>
The interaction of the code generator with the analyzer is
simple: each subrule block calls deterministic() before generating
code for the block. Method deterministic() sets lookahead caches
in each Alternative object. Technically, a code generator
doesn't need the grammar analyzer if all lookahead analysis
is done at runtime, but this would result in a slower parser.
<p/>
This class provides a set of support utilities to handle argument
list parsing and so on.
</div><div class="taglet"><dl class="tag list"></dl><dt class="tag section header"><b>Version:</b></dt><dd>2.00a</dd></dl></div><div class="taglet"><dl class="tag list"><dt class="tag section header"><b>Author:</b></dt><dd class="tag item">Terence Parr, John Lilley</dd></dl></div><div class="taglet"></div><div class="taglet"></div><div class="taglet"><dl class="tag list"><dt class="tag section header"><b>See Also:</b></dt><dd><a href="../antlr/JavaCodeGenerator.html"><code>JavaCodeGenerator</code></a>, <a href="../antlr/DiagnosticCodeGenerator.html"><code>DiagnosticCodeGenerator</code></a>, <a href="../antlr/LLkAnalyzer.html"><code>LLkAnalyzer</code></a>, <a href="../antlr/Grammar.html"><code>Grammar</code></a>, <a href="../antlr/AlternativeElement.html"><code>AlternativeElement</code></a>, <a href="../antlr/Lookahead.html"><code>Lookahead</code></a></dd></dl></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 int</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#BITSET_OPTIMIZE_INIT_THRESHOLD">BITSET_OPTIMIZE_INIT_THRESHOLD</a></code></dt><dd class="description">If there are more than 8 long words to init in a bitset,
try to optimize it; e.g., detect runs of -1L and 0L.</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="#DEBUG_CODE_GENERATOR">DEBUG_CODE_GENERATOR</a></code></dt><dd class="description">Use option "codeGenDebug" to generate debugging output </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected static int</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#DEFAULT_BITSET_TEST_THRESHOLD">DEFAULT_BITSET_TEST_THRESHOLD</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected static int</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#DEFAULT_MAKE_SWITCH_THRESHOLD">DEFAULT_MAKE_SWITCH_THRESHOLD</a></code></dt><dd class="description">Default values for code-generation thresholds </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">static String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#TokenTypesFileExt">TokenTypesFileExt</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">static String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#TokenTypesFileSuffix">TokenTypesFileSuffix</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected <a href="../antlr/LLkGrammarAnalyzer.html" title="Interface in antlr">LLkGrammarAnalyzer</a></code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#analyzer">analyzer</a></code></dt><dd class="description">The LLk analyzer </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected <a href="../antlr/Tool.html" title="Class in antlr">Tool</a></code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#antlrTool">antlrTool</a></code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected <a href="../antlr/DefineGrammarSymbols.html" title="Class in antlr">DefineGrammarSymbols</a></code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#behavior">behavior</a></code></dt><dd class="description">The grammar behavior </dd></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="#bitsetTestThreshold">bitsetTestThreshold</a></code></dt><dd class="description">This is a hint for the language-specific code generator.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected <a href="../antlr/collections/impl/Vector.html" title="Class in antlr.collections.impl">Vector</a></code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#bitsetsUsed">bitsetsUsed</a></code></dt><dd class="description">List of all bitsets that must be dumped.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected <a href="../antlr/CharFormatter.html" title="Interface in antlr">CharFormatter</a></code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#charFormatter">charFormatter</a></code></dt><dd class="description">Object used to format characters in the target language.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected PrintWriter</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#currentOutput">currentOutput</a></code></dt><dd class="description">Current output Stream </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected <a href="../antlr/Grammar.html" title="Class in antlr">Grammar</a></code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#grammar">grammar</a></code></dt><dd class="description">The grammar for which we generate code </dd></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="#makeSwitchThreshold">makeSwitchThreshold</a></code></dt><dd class="description">This is a hint for the language-specific code generator.</dd></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="#tabs">tabs</a></code></dt><dd class="description">Current tab indentation for code output </dd></dl></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="#CodeGenerator()">CodeGenerator</a>()</code></dt><dd class="description">Construct code generator base class </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 void</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#_print(String)">_print</a>(String s)</code></dt><dd class="description">Output a String to the currentOutput stream.</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="#_printAction(String)">_printAction</a>(String s)</code></dt><dd class="description">Print an action without leading tabs, attempting to
preserve the current indentation level for multi-line actions
Ignored if string is null.</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="#_println(String)">_println</a>(String s)</code></dt><dd class="description">Output a String followed by newline, to the currentOutput stream.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">static String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#decodeLexerRuleName(String)">decodeLexerRuleName</a>(String id)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">static boolean</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#elementsAreRange(int[])">elementsAreRange</a>(int[] elems)</code></dt><dd class="description">Test if a set element array represents a contiguous range.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">static String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#encodeLexerRuleName(String)">encodeLexerRuleName</a>(String id)</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="#extractIdOfAction(String,int,int)">extractIdOfAction</a>(String s, int line, int column)</code></dt><dd class="description">Get the identifier portion of an argument-action.</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="#extractIdOfAction(antlr.Token)">extractIdOfAction</a>(<a href="../antlr/Token.html" title="Class in antlr">Token</a> t)</code></dt><dd class="description">Get the identifier portion of an argument-action token.</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="#extractTypeOfAction(String,int,int)">extractTypeOfAction</a>(String s, int line, int column)</code></dt><dd class="description">Get the type portion of an argument-action.</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="#extractTypeOfAction(antlr.Token)">extractTypeOfAction</a>(<a href="../antlr/Token.html" title="Class in antlr">Token</a> t)</code></dt><dd class="description">Get the type string out of an argument-action token.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">abstract 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 code for all grammars
</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">abstract 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">abstract 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">abstract 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">abstract 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">abstract 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">abstract 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 code for a parser </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">abstract 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">abstract 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 code for a parser </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">abstract 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">abstract 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">abstract 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">abstract 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">abstract 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">abstract 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 code for a parser </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">abstract 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">abstract 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="#genTokenInterchange(antlr.TokenManager)">genTokenInterchange</a>(<a href="../antlr/TokenManager.html" title="Interface in antlr">TokenManager</a> tm)</code></dt><dd class="description">Generate the token types as a text file for persistence across shared lexer/parser </dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">abstract 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 str)</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">abstract 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="#getBitsetName(int)">getBitsetName</a>(int index)</code></dt><dd class="description">Given the index of a bitset in the bitset list, generate a unique name.</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="#getFIRSTBitSet(String,int)">getFIRSTBitSet</a>(String ruleName, int k)</code></dt></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="#getFOLLOWBitSet(String,int)">getFOLLOWBitSet</a>(String ruleName, int k)</code></dt></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">abstract String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#mapTreeId(String,antlr.ActionTransInfo)">mapTreeId</a>(String id, <a href="../antlr/ActionTransInfo.html" title="Class in antlr">ActionTransInfo</a> tInfo)</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 int</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#markBitsetForGen(antlr.collections.impl.BitSet)">markBitsetForGen</a>(<a href="../antlr/collections/impl/BitSet.html" title="Class in antlr.collections.impl">BitSet</a> p)</code></dt><dd class="description">Add a bitset to the list of bitsets to be generated.</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="#print(String)">print</a>(String s)</code></dt><dd class="description">Output tab indent followed by a String, to the currentOutput stream.</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="#printAction(String)">printAction</a>(String s)</code></dt><dd class="description">Print an action with leading tabs, attempting to
preserve the current indentation level for multi-line actions
Ignored if string is null.</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="#printTabs()">printTabs</a>()</code></dt><dd class="description">Output the current tab indentation.</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="#println(String)">println</a>(String s)</code></dt><dd class="description">Output tab indent followed by a String followed by newline,
to the currentOutput stream.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">protected abstract 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 $ and # references within the action.</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="#processStringForASTConstructor(String)">processStringForASTConstructor</a>(String str)</code></dt><dd class="description">Process a string for an simple expression for use in xx/action.g
it is used to cast simple tokens/references to the right type for
the generated language.</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="#removeAssignmentFromDeclaration(String)">removeAssignmentFromDeclaration</a>(String d)</code></dt><dd class="description"> Remove the assignment portion of a declaration, if any.</dd></dl></td></tr><tr><td class="left" valign="top"><code class="synopsis">static String</code></td><td class="right"><dl class="list"><dt class="synopsis"><code><a href="#reverseLexerRuleName(String)">reverseLexerRuleName</a>(String id)</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="#setAnalyzer(antlr.LLkGrammarAnalyzer)">setAnalyzer</a>(<a href="../antlr/LLkGrammarAnalyzer.html" title="Interface in antlr">LLkGrammarAnalyzer</a> analyzer_)</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="#setBehavior(antlr.DefineGrammarSymbols)">setBehavior</a>(<a href="../antlr/DefineGrammarSymbols.html" title="Class in antlr">DefineGrammarSymbols</a> behavior_)</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="#setGrammar(antlr.Grammar)">setGrammar</a>(<a href="../antlr/Grammar.html" title="Class in antlr">Grammar</a> g)</code></dt><dd class="description">Set a grammar for the code generator to use </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="#setTool(antlr.Tool)">setTool</a>(<a href="../antlr/Tool.html" title="Class in antlr">Tool</a> tool)</code></dt></dl></td></tr></table></dd></dl><a name="detail-fields" id="detail-fields"/><h2 class="section header">Field Details</h2><div class="section"><a name="BITSET_OPTIMIZE_INIT_THRESHOLD" id="BITSET_OPTIMIZE_INIT_THRESHOLD"/><div class="member detail outer"><h3 class="member detail name">BITSET_OPTIMIZE_INIT_THRESHOLD</h3><pre class="member detail synopsis">protected static final int BITSET_OPTIMIZE_INIT_THRESHOLD</pre><blockquote class="member detail name"><div class="member detail description">If there are more than 8 long words to init in a bitset,
try to optimize it; e.g., detect runs of -1L and 0L.
</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">8</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="DEBUG_CODE_GENERATOR" id="DEBUG_CODE_GENERATOR"/><div class="member detail outer"><h3 class="member detail name">DEBUG_CODE_GENERATOR</h3><pre class="member detail synopsis">protected boolean DEBUG_CODE_GENERATOR</pre><blockquote class="member detail name"><div class="member detail description">Use option "codeGenDebug" to generate debugging output </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="DEFAULT_BITSET_TEST_THRESHOLD" id="DEFAULT_BITSET_TEST_THRESHOLD"/><div class="member detail outer"><h3 class="member detail name">DEFAULT_BITSET_TEST_THRESHOLD</h3><pre class="member detail synopsis">protected static final int DEFAULT_BITSET_TEST_THRESHOLD</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">4</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="DEFAULT_MAKE_SWITCH_THRESHOLD" id="DEFAULT_MAKE_SWITCH_THRESHOLD"/><div class="member detail outer"><h3 class="member detail name">DEFAULT_MAKE_SWITCH_THRESHOLD</h3><pre class="member detail synopsis">protected static final int DEFAULT_MAKE_SWITCH_THRESHOLD</pre><blockquote class="member detail name"><div class="member detail description">Default values for code-generation thresholds </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">2</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="TokenTypesFileExt" id="TokenTypesFileExt"/><div class="member detail outer"><h3 class="member detail name">TokenTypesFileExt</h3><pre class="member detail synopsis">public static String TokenTypesFileExt</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="TokenTypesFileSuffix" id="TokenTypesFileSuffix"/><div class="member detail outer"><h3 class="member detail name">TokenTypesFileSuffix</h3><pre class="member detail synopsis">public static String TokenTypesFileSuffix</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="analyzer" id="analyzer"/><div class="member detail outer"><h3 class="member detail name">analyzer</h3><pre class="member detail synopsis">protected <a href="../antlr/LLkGrammarAnalyzer.html" title="Interface in antlr">LLkGrammarAnalyzer</a> analyzer</pre><blockquote class="member detail name"><div class="member detail description">The LLk analyzer </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="antlrTool" id="antlrTool"/><div class="member detail outer"><h3 class="member detail name">antlrTool</h3><pre class="member detail synopsis">protected <a href="../antlr/Tool.html" title="Class in antlr">Tool</a> antlrTool</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="behavior" id="behavior"/><div class="member detail outer"><h3 class="member detail name">behavior</h3><pre class="member detail synopsis">protected <a href="../antlr/DefineGrammarSymbols.html" title="Class in antlr">DefineGrammarSymbols</a> behavior</pre><blockquote class="member detail name"><div class="member detail description">The grammar behavior </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="bitsetTestThreshold" id="bitsetTestThreshold"/><div class="member detail outer"><h3 class="member detail name">bitsetTestThreshold</h3><pre class="member detail synopsis">protected int bitsetTestThreshold</pre><blockquote class="member detail name"><div class="member detail description">This is a hint for the language-specific code generator.
A bitset membership test will be generated instead of an
ORed series of LA(k) comparisions for lookahead sets with
degree greater than or equal to this value.
This is modified by the grammar option "codeGenBitsetTestThreshold"
</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="bitsetsUsed" id="bitsetsUsed"/><div class="member detail outer"><h3 class="member detail name">bitsetsUsed</h3><pre class="member detail synopsis">protected <a href="../antlr/collections/impl/Vector.html" title="Class in antlr.collections.impl">Vector</a> bitsetsUsed</pre><blockquote class="member detail name"><div class="member detail description">List of all bitsets that must be dumped. These are Vectors of BitSet. </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="charFormatter" id="charFormatter"/><div class="member detail outer"><h3 class="member detail name">charFormatter</h3><pre class="member detail synopsis">protected <a href="../antlr/CharFormatter.html" title="Interface in antlr">CharFormatter</a> charFormatter</pre><blockquote class="member detail name"><div class="member detail description">Object used to format characters in the target language.
subclass must initialize this to the language-specific formatter
</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="currentOutput" id="currentOutput"/><div class="member detail outer"><h3 class="member detail name">currentOutput</h3><pre class="member detail synopsis">protected PrintWriter currentOutput</pre><blockquote class="member detail name"><div class="member detail description">Current output Stream </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="grammar" id="grammar"/><div class="member detail outer"><h3 class="member detail name">grammar</h3><pre class="member detail synopsis">protected <a href="../antlr/Grammar.html" title="Class in antlr">Grammar</a> grammar</pre><blockquote class="member detail name"><div class="member detail description">The grammar for which we generate code </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="makeSwitchThreshold" id="makeSwitchThreshold"/><div class="member detail outer"><h3 class="member detail name">makeSwitchThreshold</h3><pre class="member detail synopsis">protected int makeSwitchThreshold</pre><blockquote class="member detail name"><div class="member detail description">This is a hint for the language-specific code generator.
A switch() or language-specific equivalent will be generated instead
of a series of if/else statements for blocks with number of alternates
greater than or equal to this number of non-predicated LL(1) alternates.
This is modified by the grammar option "codeGenMakeSwitchThreshold"
</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="tabs" id="tabs"/><div class="member detail outer"><h3 class="member detail name">tabs</h3><pre class="member detail synopsis">protected int tabs</pre><blockquote class="member detail name"><div class="member detail description">Current tab indentation for code output </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="CodeGenerator()" id="CodeGenerator()"/><div class="member detail outer"><h3 class="member detail name">CodeGenerator</h3><pre class="member detail synopsis">public CodeGenerator()</pre><blockquote class="member detail name"><div class="member detail description">Construct code generator base class </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="_print(String)" id="_print(String)"/><div class="member detail outer"><h3 class="member detail name">_print</h3><pre class="member detail synopsis">protected void _print(String s)</pre><blockquote class="member detail name"><div class="member detail description">Output a String to the currentOutput stream.
Ignored if string is null.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">s</code><span class="separator"> - </span><span class="description">The string to output</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="_printAction(String)" id="_printAction(String)"/><div class="member detail outer"><h3 class="member detail name">_printAction</h3><pre class="member detail synopsis">protected void _printAction(String s)</pre><blockquote class="member detail name"><div class="member detail description">Print an action without leading tabs, attempting to
preserve the current indentation level for multi-line actions
Ignored if string is null.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">s</code><span class="separator"> - </span><span class="description">The action string to output</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="_println(String)" id="_println(String)"/><div class="member detail outer"><h3 class="member detail name">_println</h3><pre class="member detail synopsis">protected void _println(String s)</pre><blockquote class="member detail name"><div class="member detail description">Output a String followed by newline, to the currentOutput stream.
Ignored if string is null.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">s</code><span class="separator"> - </span><span class="description">The string to output</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="decodeLexerRuleName(String)" id="decodeLexerRuleName(String)"/><div class="member detail outer"><h3 class="member detail name">decodeLexerRuleName</h3><pre class="member detail synopsis">public static String decodeLexerRuleName(String id)</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="elementsAreRange(int[])" id="elementsAreRange(int[])"/><div class="member detail outer"><h3 class="member detail name">elementsAreRange</h3><pre class="member detail synopsis">public static boolean elementsAreRange(int[] elems)</pre><blockquote class="member detail name"><div class="member detail description">Test if a set element array represents a contiguous range.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">elems</code><span class="separator"> - </span><span class="description">The array of 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">true if the elements are a contiguous range (with two or more).</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="encodeLexerRuleName(String)" id="encodeLexerRuleName(String)"/><div class="member detail outer"><h3 class="member detail name">encodeLexerRuleName</h3><pre class="member detail synopsis">public static String encodeLexerRuleName(String id)</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="extractIdOfAction(String,int,int)" id="extractIdOfAction(String,int,int)"/><div class="member detail outer"><h3 class="member detail name">extractIdOfAction</h3><pre class="member detail synopsis">protected String extractIdOfAction(String s,
int line,
int column)</pre><blockquote class="member detail name"><div class="member detail description">Get the identifier portion of an argument-action.
The ID of an action is assumed to be a trailing identifier.
Specific code-generators may want to override this
if the language has unusual declaration syntax.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">s</code><span class="separator"> - </span><span class="description">The action text</span></dd><dd class="item"><code class="name">line</code><span class="separator"> - </span><span class="description">Line used for error reporting.</span></dd><dd class="item"><code class="name">column</code><span class="separator"> - </span><span class="description">Line used for error reporting.</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">A string containing the text of the identifier</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="extractIdOfAction(antlr.Token)" id="extractIdOfAction(antlr.Token)"/><div class="member detail outer"><h3 class="member detail name">extractIdOfAction</h3><pre class="member detail synopsis">protected String extractIdOfAction(<a href="../antlr/Token.html" title="Class in antlr">Token</a> t)</pre><blockquote class="member detail name"><div class="member detail description">Get the identifier portion of an argument-action token.
The ID of an action is assumed to be a trailing identifier.
Specific code-generators may want to override this
if the language has unusual declaration syntax.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">t</code><span class="separator"> - </span><span class="description">The action token</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">A string containing the text of the identifier</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="extractTypeOfAction(String,int,int)" id="extractTypeOfAction(String,int,int)"/><div class="member detail outer"><h3 class="member detail name">extractTypeOfAction</h3><pre class="member detail synopsis">protected String extractTypeOfAction(String s,
int line,
int column)</pre><blockquote class="member detail name"><div class="member detail description">Get the type portion of an argument-action.
The type of an action is assumed to precede a trailing identifier
Specific code-generators may want to override this
if the language has unusual declaration syntax.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">s</code><span class="separator"> - </span><span class="description">The action text</span></dd><dd class="item"><code class="name">line</code><span class="separator"> - </span><span class="description">Line used for error reporting.</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">A string containing the text of the type</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="extractTypeOfAction(antlr.Token)" id="extractTypeOfAction(antlr.Token)"/><div class="member detail outer"><h3 class="member detail name">extractTypeOfAction</h3><pre class="member detail synopsis">protected String extractTypeOfAction(<a href="../antlr/Token.html" title="Class in antlr">Token</a> t)</pre><blockquote class="member detail name"><div class="member detail description">Get the type string out of an argument-action token.
The type of an action is assumed to precede a trailing identifier
Specific code-generators may want to override this
if the language has unusual declaration syntax.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">t</code><span class="separator"> - </span><span class="description">The action token</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">A string containing the text of the type</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()" id="gen()"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public abstract void gen()</pre><blockquote class="member detail name"><div class="member detail description">Generate the code for all grammars
</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.ActionElement)" id="gen(antlr.ActionElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public abstract 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><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">action</code><span class="separator"> - </span><span class="description">The {...} action 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.AlternativeBlock)" id="gen(antlr.AlternativeBlock)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public abstract 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><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 abstract 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><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">end</code><span class="separator"> - </span><span class="description">The block-end element to generate. Block-end
elements are synthesized by the grammar parser to represent
the end of a block.</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.CharLiteralElement)" id="gen(antlr.CharLiteralElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public abstract 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><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 character literal reference 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.CharRangeElement)" id="gen(antlr.CharRangeElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public abstract 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><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">r</code><span class="separator"> - </span><span class="description">The character-range reference 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.LexerGrammar)" id="gen(antlr.LexerGrammar)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public abstract 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 code for a parser </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.OneOrMoreBlock)" id="gen(antlr.OneOrMoreBlock)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public abstract 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><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 abstract 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 code for a parser </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.RuleRefElement)" id="gen(antlr.RuleRefElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public abstract 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><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">rr</code><span class="separator"> - </span><span class="description">The rule-reference 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.StringLiteralElement)" id="gen(antlr.StringLiteralElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public abstract 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><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 string-literal reference 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.TokenRangeElement)" id="gen(antlr.TokenRangeElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public abstract 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><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">r</code><span class="separator"> - </span><span class="description">The token-range reference 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.TokenRefElement)" id="gen(antlr.TokenRefElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public abstract 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><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 token-reference 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.TreeElement)" id="gen(antlr.TreeElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public abstract 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><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 abstract 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 code for a parser </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.WildcardElement)" id="gen(antlr.WildcardElement)"/><div class="member detail outer"><h3 class="member detail name">gen</h3><pre class="member detail synopsis">public abstract 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><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 abstract 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><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="genTokenInterchange(antlr.TokenManager)" id="genTokenInterchange(antlr.TokenManager)"/><div class="member detail outer"><h3 class="member detail name">genTokenInterchange</h3><pre class="member detail synopsis">protected void genTokenInterchange(<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 as a text file for persistence across shared lexer/parser </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 abstract String getASTCreateString(<a href="../antlr/GrammarAtom.html" title="Class in antlr">GrammarAtom</a> atom,
String str)</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><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">str</code><span class="separator"> - </span><span class="description">The text of the arguments to the AST construction</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 abstract 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><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="getBitsetName(int)" id="getBitsetName(int)"/><div class="member detail outer"><h3 class="member detail name">getBitsetName</h3><pre class="member detail synopsis">protected String getBitsetName(int index)</pre><blockquote class="member detail name"><div class="member detail description">Given the index of a bitset in the bitset list, generate a unique name.
Specific code-generators may want to override this
if the language does not allow '_' or numerals in identifiers.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">index</code><span class="separator"> - </span><span class="description">The index of the bitset in the bitset list.</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="getFIRSTBitSet(String,int)" id="getFIRSTBitSet(String,int)"/><div class="member detail outer"><h3 class="member detail name">getFIRSTBitSet</h3><pre class="member detail synopsis">public String getFIRSTBitSet(String ruleName,
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="getFOLLOWBitSet(String,int)" id="getFOLLOWBitSet(String,int)"/><div class="member detail outer"><h3 class="member detail name">getFOLLOWBitSet</h3><pre class="member detail synopsis">public String getFOLLOWBitSet(String ruleName,
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="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 abstract String mapTreeId(String id,
<a href="../antlr/ActionTransInfo.html" title="Class in antlr">ActionTransInfo</a> tInfo)</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><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">id</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="markBitsetForGen(antlr.collections.impl.BitSet)" id="markBitsetForGen(antlr.collections.impl.BitSet)"/><div class="member detail outer"><h3 class="member detail name">markBitsetForGen</h3><pre class="member detail synopsis">protected int markBitsetForGen(<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">Add a bitset to the list of bitsets to be generated.
if the bitset is already in the list, ignore the request.
Always adds the bitset to the end of the list, so the
caller can rely on the position of bitsets in the list.
The returned position can be used to format the bitset
name, since it is invariant.
</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">Bit set to mark for code generation</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 position of the bitset in the list.</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="print(String)" id="print(String)"/><div class="member detail outer"><h3 class="member detail name">print</h3><pre class="member detail synopsis">protected void print(String s)</pre><blockquote class="member detail name"><div class="member detail description">Output tab indent followed by a String, to the currentOutput stream.
Ignored if string is null.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">s</code><span class="separator"> - </span><span class="description">The string to output.</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="printAction(String)" id="printAction(String)"/><div class="member detail outer"><h3 class="member detail name">printAction</h3><pre class="member detail synopsis">protected void printAction(String s)</pre><blockquote class="member detail name"><div class="member detail description">Print an action with leading tabs, attempting to
preserve the current indentation level for multi-line actions
Ignored if string is null.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">s</code><span class="separator"> - </span><span class="description">The action string to output</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="printTabs()" id="printTabs()"/><div class="member detail outer"><h3 class="member detail name">printTabs</h3><pre class="member detail synopsis">protected void printTabs()</pre><blockquote class="member detail name"><div class="member detail description">Output the current tab indentation. This outputs the number of tabs
indicated by the "tabs" variable to the currentOutput stream.
</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="println(String)" id="println(String)"/><div class="member detail outer"><h3 class="member detail name">println</h3><pre class="member detail synopsis">protected void println(String s)</pre><blockquote class="member detail name"><div class="member detail description">Output tab indent followed by a String followed by newline,
to the currentOutput stream. Ignored if string is null.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">s</code><span class="separator"> - </span><span class="description">The string to output</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="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 abstract 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 $ and # references within the action.
This will replace #id and #(...) with the appropriate
function calls and/or variables etc...
</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="processStringForASTConstructor(String)" id="processStringForASTConstructor(String)"/><div class="member detail outer"><h3 class="member detail name">processStringForASTConstructor</h3><pre class="member detail synopsis">public String processStringForASTConstructor(String str)</pre><blockquote class="member detail name"><div class="member detail description">Process a string for an simple expression for use in xx/action.g
it is used to cast simple tokens/references to the right type for
the generated language.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">str</code><span class="separator"> - </span><span class="description">A String.</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="removeAssignmentFromDeclaration(String)" id="removeAssignmentFromDeclaration(String)"/><div class="member detail outer"><h3 class="member detail name">removeAssignmentFromDeclaration</h3><pre class="member detail synopsis">protected String removeAssignmentFromDeclaration(String d)</pre><blockquote class="member detail name"><div class="member detail description"> Remove the assignment portion of a declaration, if any.
</div><div class="parameter"><dl><dt class="header"><b>Parameters:</b></dt><dd class="item"><code class="name">d</code><span class="separator"> - </span><span class="description">the declaration</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 declaration without any assignment portion</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="reverseLexerRuleName(String)" id="reverseLexerRuleName(String)"/><div class="member detail outer"><h3 class="member detail name">reverseLexerRuleName</h3><pre class="member detail synopsis">public static String reverseLexerRuleName(String id)</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="setAnalyzer(antlr.LLkGrammarAnalyzer)" id="setAnalyzer(antlr.LLkGrammarAnalyzer)"/><div class="member detail outer"><h3 class="member detail name">setAnalyzer</h3><pre class="member detail synopsis">public void setAnalyzer(<a href="../antlr/LLkGrammarAnalyzer.html" title="Interface in antlr">LLkGrammarAnalyzer</a> analyzer_)</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="setBehavior(antlr.DefineGrammarSymbols)" id="setBehavior(antlr.DefineGrammarSymbols)"/><div class="member detail outer"><h3 class="member detail name">setBehavior</h3><pre class="member detail synopsis">public void setBehavior(<a href="../antlr/DefineGrammarSymbols.html" title="Class in antlr">DefineGrammarSymbols</a> behavior_)</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="setGrammar(antlr.Grammar)" id="setGrammar(antlr.Grammar)"/><div class="member detail outer"><h3 class="member detail name">setGrammar</h3><pre class="member detail synopsis">protected void setGrammar(<a href="../antlr/Grammar.html" title="Class in antlr">Grammar</a> g)</pre><blockquote class="member detail name"><div class="member detail description">Set a grammar for the code generator to use </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="setTool(antlr.Tool)" id="setTool(antlr.Tool)"/><div class="member detail outer"><h3 class="member detail name">setTool</h3><pre class="member detail synopsis">public void setTool(<a href="../antlr/Tool.html" title="Class in antlr">Tool</a> tool)</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></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="CodeGenerator-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>