antlr

Class Grammar

Known Direct Subclasses:
LexerGrammar, ParserGrammar, TreeWalkerGrammar

public abstract class Grammar
extends Object

A Grammar holds a set of rules (which are stored in a symbol table). Most of the time a grammar needs a code generator and an LLkAnalyzer too.

Field Summary

protected boolean
analyzerDebug
protected Tool
antlrTool
protected boolean
buildAST
protected Token
classMemberAction
protected String
className
protected String
comment
protected boolean
debuggingOutput
protected boolean
defaultErrorHandler
protected String
exportVocab
The name of the export vocabulary...used to generate the output token types interchange file.
protected String
fileName
protected CodeGenerator
generator
protected boolean
hasSyntacticPredicate
protected boolean
hasUserErrorHandling
protected String
importVocab
The name of the import vocabulary.
protected boolean
interactive
protected int
maxk
protected Hashtable
options
protected Token
preambleAction
protected Vector
rules
protected String
superClass
protected Hashtable
symbols
protected LLkGrammarAnalyzer
theLLkAnalyzer
protected TokenManager
tokenManager
The token manager associated with the grammar, if any.
protected boolean
traceRules

Constructor Summary

Grammar(String className_, Tool tool_, String superClass)

Method Summary

void
define(RuleSymbol rs)
Define a rule
void
generate()
Top-level call to generate the code for this grammar
protected String
getClassName()
boolean
getDefaultErrorHandler()
String
getFilename()
int
getIntegerOption(String key)
Get an integer option.
Token
getOption(String key)
Get an option.
protected String
getSuperClass()
GrammarSymbol
getSymbol(String s)
Enumeration
getSymbols()
boolean
hasOption(String key)
Check the existence of an option in the table
boolean
isDefined(String s)
Is a rule symbol defined? (not used for tokens)
void
processArguments(String[] args)
Process command line arguments.
void
setCodeGenerator(CodeGenerator gen)
void
setFilename(String s)
void
setGrammarAnalyzer(LLkGrammarAnalyzer a)
boolean
setOption(String key, Token value)
Set a generic option.
void
setTokenManager(TokenManager tokenManager_)
String
toString()
Print out the grammar without actions

Field Details

analyzerDebug

protected boolean analyzerDebug


antlrTool

protected Tool antlrTool


buildAST

protected boolean buildAST


classMemberAction

protected Token classMemberAction


className

protected String className


comment

protected String comment


debuggingOutput

protected boolean debuggingOutput


defaultErrorHandler

protected boolean defaultErrorHandler


exportVocab

protected String exportVocab
The name of the export vocabulary...used to generate the output token types interchange file.


fileName

protected String fileName


generator

protected CodeGenerator generator


hasSyntacticPredicate

protected boolean hasSyntacticPredicate


hasUserErrorHandling

protected boolean hasUserErrorHandling


importVocab

protected String importVocab
The name of the import vocabulary. "Initial conditions"


interactive

protected boolean interactive


maxk

protected int maxk


options

protected Hashtable options


preambleAction

protected Token preambleAction


rules

protected Vector rules


superClass

protected String superClass


symbols

protected Hashtable symbols


theLLkAnalyzer

protected LLkGrammarAnalyzer theLLkAnalyzer


tokenManager

protected TokenManager tokenManager
The token manager associated with the grammar, if any. // The token manager is responsible for maintaining the set of valid tokens, and // is conceptually shared between the lexer and parser. This may be either a // LexerGrammar or a ImportVocabTokenManager.


traceRules

protected boolean traceRules

Constructor Details

Grammar

public Grammar(String className_,
               Tool tool_,
               String superClass)

Method Details

define

public void define(RuleSymbol rs)
Define a rule


generate

public void generate()
            throws IOException
Top-level call to generate the code for this grammar


getClassName

protected String getClassName()


getDefaultErrorHandler

public boolean getDefaultErrorHandler()


getFilename

public String getFilename()


getIntegerOption

public int getIntegerOption(String key)
            throws NumberFormatException
Get an integer option. Given the name of the option find its associated integer value. If the associated value is not an integer or is not in the table, then throw an exception of type NumberFormatException.

Parameters:
key - The name of the option

Returns:
The value associated with the key.


getOption

public Token getOption(String key)
Get an option. Given the name of the option find its associated value.

Parameters:
key - The name of the option

Returns:
The value associated with the key, or null if the key has not been set.


getSuperClass

protected String getSuperClass()


getSymbol

public GrammarSymbol getSymbol(String s)


getSymbols

public Enumeration getSymbols()


hasOption

public boolean hasOption(String key)
Check the existence of an option in the table

Parameters:
key - The name of the option

Returns:
true if the option is in the table


isDefined

public boolean isDefined(String s)
Is a rule symbol defined? (not used for tokens)


processArguments

public void processArguments(String[] args)
Process command line arguments. Implemented in subclasses


setCodeGenerator

public void setCodeGenerator(CodeGenerator gen)


setFilename

public void setFilename(String s)


setGrammarAnalyzer

public void setGrammarAnalyzer(LLkGrammarAnalyzer a)


setOption

public boolean setOption(String key,
                         Token value)
Set a generic option. This associates a generic option key with a Token value. No validation is performed by this method, although users of the value (code generation and/or analysis) may require certain formats. The value is stored as a token so that the location of an error can be reported.

Parameters:
key - The name of the option.
value - The value to associate with the key.

Returns:
true if the option was a valid generic grammar option, false o/w


setTokenManager

public void setTokenManager(TokenManager tokenManager_)


toString

public String toString()
Print out the grammar without actions