Package antlr

Class Grammar

java.lang.Object
antlr.Grammar
Direct Known 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 Details

    • antlrTool

      protected Tool antlrTool
    • generator

      protected CodeGenerator generator
    • theLLkAnalyzer

      protected LLkGrammarAnalyzer theLLkAnalyzer
    • symbols

      protected Hashtable symbols
    • buildAST

      protected boolean buildAST
    • analyzerDebug

      protected boolean analyzerDebug
    • interactive

      protected boolean interactive
    • superClass

      protected String superClass
    • 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.
    • exportVocab

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

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

      protected Hashtable options
    • rules

      protected Vector rules
    • preambleAction

      protected Token preambleAction
    • className

      protected String className
    • fileName

      protected String fileName
    • classMemberAction

      protected Token classMemberAction
    • hasSyntacticPredicate

      protected boolean hasSyntacticPredicate
    • hasUserErrorHandling

      protected boolean hasUserErrorHandling
    • maxk

      protected int maxk
    • traceRules

      protected boolean traceRules
    • debuggingOutput

      protected boolean debuggingOutput
    • defaultErrorHandler

      protected boolean defaultErrorHandler
    • comment

      protected String comment
  • Constructor Details

  • Method Details

    • define

      public void define(RuleSymbol rs)
      Define a rule
    • generate

      public abstract void generate() throws IOException
      Top-level call to generate the code for this grammar
      Throws:
      IOException
    • 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.
      Throws:
      NumberFormatException
    • 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 abstract 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 abstract 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
      Overrides:
      toString in class Object