コード例 #1
0
        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);
                }
            }
        }
コード例 #2
0
ファイル: RuleTest.cs プロジェクト: o2xli/Fluent.Net
        public void TestModExpr()
        {
            var expr = new ModExpr()
            {
                Operand = Operand.n, Value = 6
            };

            expr.Evaluate("99").Should().Be(3M);
        }
コード例 #3
0
 /// <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);
 }
コード例 #4
0
 /// <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);
 }
コード例 #5
0
 /// <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)));
 }