Esempio n. 1
0
 public override Expr VisitMulDiv([NotNull] ExprParser.MulDivContext context)
 {
     return(new FunctionExpr(context.op.Type == ExprParser.MUL ? "*" : "/")
     {
         Arguments = context.expr().Select(Visit).ToArray()
     });
 }
Esempio n. 2
0
        public override int VisitMulDiv([NotNull] ExprParser.MulDivContext context)
        {
            int left  = Visit(context.expr(0));
            int right = Visit(context.expr(1));

            if (context.op.Type == ExprParser.MUL)
            {
                return(left * right);
            }
            else
            {
                Debug.Assert(context.op.Type == ExprParser.DIV);
                return(left / right);
            }
        }
Esempio n. 3
0
        public override Expression VisitMulDiv(ExprParser.MulDivContext context)
        {
            Expression left  = Visit(context.expression(0));
            Expression right = Visit(context.expression(1));

            Expression e = new Expression(context.op.Text);

            e.AddOperand(left);
            e.AddOperand(right);

            if (context.op.Type == ExprParser.MUL)
            {
                e.Operation = Operation.MUL;
            }
            else if (context.op.Type == ExprParser.DIV)
            {
                e.Operation = Operation.DIV;
            }

            return(e);
        }