public void Consume(TokenType type) { var nextToken = _tokenStream.Next(); if (nextToken.Type != type) { throw new ParseError($"Expected '{type}', but '{nextToken.Value}' found", nextToken.Line, nextToken.Column); } }
private void RegisterBinaryOperatorR(TokenType type, Precedence precedence) { Register(type, new BinaryOperatorParse(precedence, true)); }
private void RegisterComparison(TokenType type, Precedence precedence) { Register(type, new ComparisonParse(precedence)); }
private void RegisterBitwiseOperator(TokenType type, Precedence precedence) { Register(type, new BitwiseOperatorParse(precedence)); }
private void RegisterPrefix(TokenType type, Precedence prec) { Register(type, new PrefixParse(prec)); }
private void Register(TokenType type, IPrefix prefix) { _prefixMap[type] = prefix; }
private void Register(TokenType type, IInfix infix) { _infixMap[type] = infix; }