コード例 #1
0
ファイル: DiceEngine.cs プロジェクト: envy/NDice
        public object VisitUnaryExpr(Expr.Unary expr)
        {
            var right = Evaluate(expr.Right);

            switch (expr.Operator.Type)
            {
            case TokenType.Minus:
                CheckNumberOperand(expr.Operator, right);
                return(-(double)right);

            case TokenType.Bang:
                return(!IsTruthy(right));
            }

            return(null);
        }
コード例 #2
0
ファイル: PrettyPrinter.cs プロジェクト: envy/NDice
 public string VisitUnaryExpr(Expr.Unary expr)
 {
     return($"{expr.Operator}{expr.Right.Accept(this)}");
 }
コード例 #3
0
 public string VisitUnaryExpr(Expr.Unary expr)
 {
     return(Parenthesize(expr.Operator.Lexeme, expr.Right));
 }