Class Lexer.Parser

java.lang.Object
net.mtrop.doom.struct.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 Details

    • Parser

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

    • 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.