private Expr parseMulExpr() { Expr expr = parseParenExpr(); while (true) { int token = parseToken(); switch (token) { case '%': expr = new ModExpr(expr, parseParenExpr()); break; case '*': expr = new MulExpr(expr, parseParenExpr()); break; case '/': expr = new DivExpr(expr, parseParenExpr()); break; default: _peekToken = token; return(expr); } } }
public void TestModExpr() { var expr = new ModExpr() { Operand = Operand.n, Value = 6 }; expr.Evaluate("99").Should().Be(3M); }
/// <summary> /// Validate a mod expression. /// </summary> /// <param name="mulex"> /// is the expression. </param> /// <returns> null. </returns> public virtual object visit(ModExpr mulex) { printBinExpr("MOD", mulex); return(null); }
/// <param name="ex"> /// is the mod expression. </param> /// <returns> a new function. </returns> public virtual object visit(ModExpr ex) { ex.left().accept(this); ex.right().accept(this); return(null); }
/// <param name="mulex"> /// is the mod expression. </param> /// <returns> a new function. </returns> public virtual object visit(ModExpr mulex) { return(make_ArithOp(mulex, new QName("fs", "mod", OpFunctionLibrary.XPATH_OP_NS))); }