public override Expr VisitMulDiv([NotNull] ExprParser.MulDivContext context) { return(new FunctionExpr(context.op.Type == ExprParser.MUL ? "*" : "/") { Arguments = context.expr().Select(Visit).ToArray() }); }
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); } }
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); }