Class Lexer.Parser

  • Enclosing class:
    Lexer

    public abstract static class Lexer.Parser
    extends Object
    Abstract parser class. This class aids in the creation of top-down (AKA recursive-descent) parsers.
    • Constructor Detail

      • Parser

        protected Parser​(Lexer lexer)
        Constructs the parser and binds a Lexer to it.
        Parameters:
        lexer - the lexer that this reads from.
    • Method Detail

      • getLexer

        public Lexer getLexer()
        Gets the Lexer that this Parser uses.
        Returns:
        the underlying Lexer.
      • currentToken

        protected Lexer.Token currentToken()
        Gets the token read from the last nextToken() call.
        Returns:
        the current token.
      • matchType

        protected boolean matchType​(int tokenType)
        Matches the current token. If matched, this returns true and advances to the next token. Else, this returns false.
        Parameters:
        tokenType - the type to match.
        Returns:
        true if matched, false if not.
      • currentType

        protected boolean currentType​(int... tokenTypes)
        Attempts to match the type of the current token. If matched, this returns true. This DOES NOT ADVANCE to the next token.
        Parameters:
        tokenTypes - the list of types.
        Returns:
        true if one was matched, false if not.
      • nextToken

        protected void nextToken()
        Reads and sets the current token to the next token. If the current token is null, it is the end of the Lexer's stream.
        Throws:
        Lexer.Parser.Exception - if the next token can't be read.
      • getTokenInfoLine

        public String getTokenInfoLine​(String message)
        Returns a stock error line for when an error/warning or whatever occurs during parse. For convenience only - not called by any of the current methods.
        Parameters:
        message - the message to append.
        Returns:
        the error message.