Parser

public class Parser

Class Parser. Provides parser functionality for the Hytale server.

java.lang.Object > Parser

Field Summary

lexer

private Lexer lexer

Field lexer.

context

private LexerContext context

Field context.

operatorStack

private Deque operatorStack

Field operatorStack.

bracketStack

private Deque bracketStack

Field bracketStack.

parsedToken2

final ParsedToken parsedToken2

Field parsedToken2.

otherBracket

final Token otherBracket

Field otherBracket.

parsedToken3

final ParsedToken parsedToken3

Field parsedToken3.

parsedToken4

final ParsedToken parsedToken4

Field parsedToken4.

parsedToken5

final ParsedToken parsedToken5

Field parsedToken5.

parsedToken6

final ParsedToken parsedToken6

Field parsedToken6.

mustBeUnary

final boolean mustBeUnary

Field mustBeUnary.

requiredOperands

final int requiredOperands

Field requiredOperands.

tokenPrecedence

final int tokenPrecedence

Field tokenPrecedence.

stackTokenPrecedence

final int stackTokenPrecedence

Field stackTokenPrecedence.

token

public Token token

Field token.

tokenString

public String tokenString

Field tokenString.

tokenNumber

public double tokenNumber

Field tokenNumber.

tokenPosition

public int tokenPosition

Field tokenPosition.

operandCount

public int operandCount

Field operandCount.

isTuple

public boolean isTuple

Field isTuple.

isFunctionCall

public boolean isFunctionCall

Field isFunctionCall.

tupleLength

public int tupleLength

Field tupleLength.

Method Detail

Parser

public public Parser (final Lexer lexer)

Method Parser.

Parameters:
final Lexer lexer

nextToken

private ParsedToken nextToken ()

Method nextToken.

parse

public void parse (@Nonnull final String expression, @Nonnull final ParsedTokenConsumer tokenConsumer)

Method parse.

Parameters:
@Nonnull final String expression
@Nonnull final ParsedTokenConsumer tokenConsumer

ParsedToken

public new ParsedToken (Token.END)

Method ParsedToken.

Parameters:
Token.END Token.END

if

public else if (token.isOpenBracket()

Method if.

Parameters:
token.isOpenBracket( token.isOpenBracket(

RuntimeException

public new RuntimeException ("Internal parser error: " + String.valueOf(token)

Method RuntimeException.

Parameters:
"Internal parser error: " + String.valueOf(token

peekOperator

public ParsedToken peekOperator ()

Method peekOperator.

validateOperandCount

private void validateOperandCount (@Nonnull final ParsedToken bracket)

Method validateOperandCount.

Parameters:
@Nonnull final ParsedToken bracket

adjustOperandCount

private int adjustOperandCount (@Nonnull final ParsedToken parsedToken, final int operandCount)

Method adjustOperandCount.

Parameters:
@Nonnull final ParsedToken parsedToken
final int operandCount

hasLowerPrecedence

private boolean hasLowerPrecedence (@Nonnull final Token token, @Nullable final ParsedToken stackToken)

Method hasLowerPrecedence.

Parameters:
@Nonnull final Token token
@Nullable final ParsedToken stackToken

arity

private int arity (@Nonnull final Token operator)

Method arity.

Parameters:
@Nonnull final Token operator

fromLexer

static ParsedToken fromLexer (@Nonnull final Lexer lexer, @Nonnull final LexerContext context)

Method fromLexer.

Parameters:
@Nonnull final Lexer lexer
@Nonnull final LexerContext context