Class Lexer.Parser
java.lang.Object
com.blackrook.rookscript.struct.Lexer.Parser
- Direct Known Subclasses:
ScriptParser
- Enclosing class:
Lexer
Abstract parser class.
This class aids in the creation of top-down (AKA recursive-descent) parsers.
- Author:
- Matthew Tropiano
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classThrown when a Parser has a problem. -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected Lexer.TokenGets the token read from the lastnextToken()call.protected booleancurrentType(int... tokenTypes) Attempts to match the type of the current token.getLexer()Gets theLexerthat this Parser uses.getTokenInfoLine(String message) Returns a stock error line for when an error/warning or whatever occurs during parse.protected booleanmatchType(int tokenType) Matches the current token.protected voidReads and sets the current token to the next token.
-
Constructor Details
-
Parser
Constructs the parser and binds a Lexer to it.- Parameters:
lexer- the lexer that this reads from.
-
-
Method Details
-
getLexer
-
currentToken
Gets the token read from the lastnextToken()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
-