Package antlr

Class Grammar

  • Direct Known Subclasses:
    LexerGrammar, ParserGrammar, TreeWalkerGrammar

    public abstract class Grammar
    extends java.lang.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 Detail

      • antlrTool

        protected Tool antlrTool
      • symbols

        protected java.util.Hashtable symbols
      • buildAST

        protected boolean buildAST
      • analyzerDebug

        protected boolean analyzerDebug
      • interactive

        protected boolean interactive
      • superClass

        protected java.lang.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 java.lang.String exportVocab
        The name of the export vocabulary...used to generate the output token types interchange file.
      • importVocab

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

        protected java.util.Hashtable options
      • rules

        protected Vector rules
      • preambleAction

        protected Token preambleAction
      • className

        protected java.lang.String className
      • fileName

        protected java.lang.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 java.lang.String comment
    • Constructor Detail

      • Grammar

        public Grammar​(java.lang.String className_,
                       Tool tool_,
                       java.lang.String superClass)
    • Method Detail

      • define

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

        public abstract void generate()
                               throws java.io.IOException
        Top-level call to generate the code for this grammar
        Throws:
        java.io.IOException
      • getClassName

        protected java.lang.String getClassName()
      • getDefaultErrorHandler

        public boolean getDefaultErrorHandler()
      • getFilename

        public java.lang.String getFilename()
      • getIntegerOption

        public int getIntegerOption​(java.lang.String key)
                             throws java.lang.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:
        java.lang.NumberFormatException
      • getOption

        public Token getOption​(java.lang.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 java.lang.String getSuperClass()
      • getSymbol

        public GrammarSymbol getSymbol​(java.lang.String s)
      • getSymbols

        public java.util.Enumeration getSymbols()
      • hasOption

        public boolean hasOption​(java.lang.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​(java.lang.String s)
        Is a rule symbol defined? (not used for tokens)
      • processArguments

        public abstract void processArguments​(java.lang.String[] args)
        Process command line arguments. Implemented in subclasses
      • setCodeGenerator

        public void setCodeGenerator​(CodeGenerator gen)
      • setFilename

        public void setFilename​(java.lang.String s)
      • setOption

        public boolean setOption​(java.lang.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 java.lang.String toString()
        Print out the grammar without actions
        Overrides:
        toString in class java.lang.Object