public object visitTernaryExpr(Expr.Ternary expr) { resolve(expr.Cond); resolve(expr.IfTrue); resolve(expr.IfFalse); return(null); }
public object visitTernaryExpr(Expr.Ternary expr) { bool cond = isTruthy(evaluate(expr.Cond)); if (cond) { return(evaluate(expr.IfTrue)); } else { return(evaluate(expr.IfFalse)); } }
private Expr ternary() { // expression → equality ( "?" equality ":" equality )?; Expr expr = equality(); if (match(TokenType.QUEST)) { Expr ifTrue = expression(); consume(TokenType.COLON, "Expected : after ? expresion"); Expr ifFalse = expression(); expr = new Expr.Ternary(expr, ifTrue, ifFalse); } return(expr); }
public string visitTernaryExpr(Expr.Ternary expr) { return(parenthesize("ternary", expr.Cond, expr.IfTrue, expr.IfFalse)); }