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

OrdinaryFunction() private method

id has been consumed.
id has been consumed. id must be a function name. current token must be MySqlToken.PuncLeftParen
private OrdinaryFunction ( string id, string idUpper ) : FunctionExpression
id string
idUpper string must be name of a function
return Tup.Cobar4Net.Parser.Ast.Expression.Primary.Function.FunctionExpression
        private FunctionExpression OrdinaryFunction(string id, string idUpper)
        {
            idUpper = IdentifierExpr.UnescapeName(idUpper);
            Match(MySqlToken.PuncLeftParen);
            FunctionExpression funcExpr;
            if (lexer.Token() == MySqlToken.PuncRightParen)
            {
                lexer.NextToken();
                funcExpr = functionManager.CreateFunctionExpression(idUpper, null);
            }
            else
            {
                var args = ExpressionList(new List<IExpression>());
                funcExpr = functionManager.CreateFunctionExpression(idUpper, args);
            }
            if (funcExpr == null)
            {
                throw new SqlSyntaxErrorException(id + "() is not a function");
            }
            funcExpr.SetCacheEvalRst(cacheEvalRst);
            return funcExpr;
        }