Esempio n. 1
0
        private IExpression ParseInfixExpression(IExpression left)
        {
            var expression = new InfixExpression(_current)
            {
                Operator = _current.Literal,
                Left     = left,
            };

            var precedence = CurrentPrecedence();

            NextToken();
            expression.Right = ParseExpression(precedence);

            return(expression);
        }
Esempio n. 2
0
        public IExpression ParseInfixExpression(IExpression left)
        {
            var expression = new InfixExpression()
            {
                Token    = this.CurrentToken,
                Operator = this.CurrentToken.Literal,
                Left     = left,
            };

            var precedence = this.CurrentPrecedence;

            this.ReadToken();
            expression.Right = this.ParseExpression(precedence);

            return(expression);
        }
Esempio n. 3
0
        private InfixExpression AssignmentOperatorInfixExpression(Identifier left)
        {
            NextToken();

            var op    = _current.Literal[0].ToString();
            var infix = new InfixExpression(_current)
            {
                Left     = left,
                Operator = op
            };

            NextToken();
            infix.Right = ParseExpression(Lowest);

            return(infix);
        }