/// <summary>first '(' has been consumed</summary> /// <exception cref="System.SqlSyntaxErrorException" /> private Char FunctionChar() { Char chr; for (IList<IExpression> tempExprList = new List<IExpression>();;) { var tempExpr = Expression(); tempExprList.Add(tempExpr); switch (lexer.Token()) { case MySqlToken.PuncComma: { lexer.NextToken(); continue; } case MySqlToken.PuncRightParen: { lexer.NextToken(); chr = new Char(tempExprList, null); chr.SetCacheEvalRst(cacheEvalRst); return chr; } case MySqlToken.KwUsing: { lexer.NextToken(); var tempStr = lexer.GetStringValue(); Match(MySqlToken.Identifier); Match(MySqlToken.PuncRightParen); chr = new Char(tempExprList, tempStr); chr.SetCacheEvalRst(cacheEvalRst); return chr; } default: { throw Err("expect ',' or 'USING' or ')' but is " + lexer.Token()); } } } }
public virtual void Visit(Char node) { Visit((FunctionExpression)node); }
public void Visit(Char node) { VisitChild(2, false, false, node.Arguments); }