Exemple #1
0
        private Expression And()
        {
            Expression expression = Equality();

            while (Match(TokenType.AND))
            {
                Token      op    = Previous();
                Expression right = Equality();
                expression = new Expression.Logical(expression, op, right);
            }

            return(expression);
        }
Exemple #2
0
        private Expression Or()
        {
            Expression expression = And();

            while (Match(TokenType.OR))
            {
                Token      op    = Previous();
                Expression right = And();
                expression = new Expression.Logical(expression, op, right);
            }

            return(expression);
        }
        public object VisitLogicalExpression(Expression.Logical expression)
        {
            object left = Evaluate(expression.left);

            if (expression.op.type == TokenType.OR)
            {
                if (IsTruthy(left))
                {
                    return(left);
                }
            }
            else
            {
                if (!IsTruthy(left))
                {
                    return(left);
                }
            }

            return(Evaluate(expression.right));
        }
Exemple #4
0
 public string VisitLogicalExpression(Expression.Logical expression)
 {
     throw new NotImplementedException();
 }
 public object VisitLogicalExpression(Expression.Logical expression)
 {
     Resolve(expression.left);
     Resolve(expression.right);
     return(null);
 }
Exemple #6
0
 public object VisitLogicalExpr(Expression.Logical expr)
 {
     throw new NotImplementedException("Resolver VisitLogicalExpr is not implemented");
 }
Exemple #7
0
 public object VisitLogicalExpr(Expression.Logical expr)
 {
     throw new NotImplementedException();
 }