public Expression Parse(PrattParser parser, Expression left, Token token)
        {
            var right = parser.ParseExpression(
                _precedence - (_isRight ? 1 : 0));

            return(new BinaryOpExpression(left, token, right));
        }
Пример #2
0
        public Expression Parse(PrattParser parser, Token token)
        {
            var expression = parser.ParseExpression();

            parser.ConsumeNext(TokenType.RPAREN);
            return(expression);
        }
Пример #3
0
        public Expression Parse(PrattParser parser, Token token)
        {
            parser.ConsumeNext(TokenType.LPAREN);
            var operand = parser.ParseExpression(PrecedenceTable.FUNCTION);

            parser.ConsumeNext(TokenType.RPAREN);
            return(new AbsExpression(token.Location, operand));
        }
        public Expression Parse(PrattParser parser, Token token)
        {
            var operand = parser.ParseExpression(_precedence);

            return(new PrefixExpression(token.TokenType, token.Location, operand));
        }