コード例 #1
0
ファイル: Resolver.cs プロジェクト: ashcolecarr/CsLox
        public object VisitTernaryExpr(Ternary expr)
        {
            Resolve(expr.Condition);
            Resolve(expr.ThenBranch);
            Resolve(expr.ElseBranch);

            return(null);
        }
コード例 #2
0
ファイル: Interpreter.cs プロジェクト: ashcolecarr/CsLox
 public object VisitTernaryExpr(Ternary expr)
 {
     if (IsTruthy(Evaluate(expr.Condition)))
     {
         return(Evaluate(expr.ThenBranch));
     }
     else
     {
         return(Evaluate(expr.ElseBranch));
     }
 }
コード例 #3
0
        private Expr Ternary()
        {
            Expr expr = Or();

            if (Match(TokenType.QUERY))
            {
                Expr thenBranch = Expression();
                Consume(TokenType.COLON, "Expect ':' after expression.");
                Expr elseBranch = Ternary();
                expr = new Ternary(expr, thenBranch, elseBranch);
            }

            return(expr);
        }
コード例 #4
0
ファイル: AstPrinter.cs プロジェクト: ashcolecarr/CsLox
 public string VisitTernaryExpr(Ternary expr)
 {
     throw new System.NotImplementedException();
 }