コード例 #1
0
ファイル: Interpreter.cs プロジェクト: justpwned/Feebl
        public object VisitLogicalExpr(Logical expr)
        {
            object left = Evaluate(expr.Left);

            if (expr.Op.Type == TokenType.LOG_OR)
            {
                if (IsTruthy(left))
                {
                    return(left);
                }
            }
            else
            {
                if (!IsTruthy(left))
                {
                    return(left);
                }
            }

            return(Evaluate(expr.Right));
        }
コード例 #2
0
ファイル: AstPrinter.cs プロジェクト: justpwned/Feebl
 public string VisitLogicalExpr(Logical expr)
 {
     return(Parenthesize(expr.Op.Lexeme, expr.Left, expr.Right));
 }