package com.ashardalon.pratt; import com.ashardalon.pratt.tokens.TokenStream; /** * Represents the contextual state passed to a command. * * @author EVE * * @param * The key type of the tokens. * @param * The value type of the tokens. * * @param * The state type of the parser. */ public class ParserContext { /** * The source of tokens. */ public TokenStream tokens; /** * The parser for sub-expressions. */ public PrattParser parse; /** * The state of the parser. */ public C state; /** * The initial command for the current expression. */ public K initial; /** * Create a new parser context. * * @param tokns * The source of tokens. * * @param prse * The parser to call for sub expressions. * * @param stte * Any state needing to be kept during parsing. */ public ParserContext(final TokenStream tokns, final PrattParser prse, final C stte) { tokens = tokns; parse = prse; state = stte; } }