예제 #1
0
        // evaluates sub-expression and applies unary operator
        public object VisitUnaryExpr(Expr.Unary expr)
        {
            object right = Evaluate(expr.right);

            switch (expr.op.type)
            {
            case Token.TokenType.Bang:
                return(!IsTruthy(right));

            case Token.TokenType.Minus:
                return(-(double)right);
            }

            // Unreachable.
            return(null);
        }
예제 #2
0
 public string VisitUnaryExpr(Expr.Unary expr)
 {
     return(Parenthesize(expr.op.lexeme, expr.right));
 }
예제 #3
0
파일: Resolver.cs 프로젝트: nmacadam/basil
 public object VisitUnaryExpr(Expr.Unary expr)
 {
     Resolve(expr.right);
     return(null);
 }