Tup.Cobar4Net.Parser.Recognizer.Mysql.Syntax.MySqlExprParser.ArithmeticFactorOperatorExpression C# (CSharp) Method

ArithmeticFactorOperatorExpression() private method

higherExpr ( ('*'|'/'|'%'|'DIV'|'MOD') higherExpr)+
private ArithmeticFactorOperatorExpression ( string consumed, string consumedUp ) : IExpression
consumed string
consumedUp string
return IExpression
        private IExpression ArithmeticFactorOperatorExpression(string consumed, string consumedUp)
        {
            IExpression temp;
            for (var expr = BitXORExpression(consumed,
                consumedUp);;)
            {
                switch (lexer.Token())
                {
                    case MySqlToken.OpAsterisk:
                    {
                        lexer.NextToken();
                        temp = BitXORExpression(null, null);
                        expr = new ArithmeticMultiplyExpression(expr, temp).SetCacheEvalRst(cacheEvalRst);
                        break;
                    }

                    case MySqlToken.OpSlash:
                    {
                        lexer.NextToken();
                        temp = BitXORExpression(null, null);
                        expr = new ArithmeticDivideExpression(expr, temp).SetCacheEvalRst(cacheEvalRst);
                        break;
                    }

                    case MySqlToken.KwDiv:
                    {
                        lexer.NextToken();
                        temp = BitXORExpression(null, null);
                        expr = new ArithmeticIntegerDivideExpression(expr, temp).SetCacheEvalRst(cacheEvalRst);
                        break;
                    }

                    case MySqlToken.OpPercent:
                    case MySqlToken.KwMod:
                    {
                        lexer.NextToken();
                        temp = BitXORExpression(null, null);
                        expr = new ArithmeticModExpression(expr, temp).SetCacheEvalRst(cacheEvalRst);
                        break;
                    }

                    default:
                    {
                        return expr;
                    }
                }
            }
        }