コード例 #1
0
        public override void VisitAfter(SubstringFunc expr)
        {
            Expr arg3 = null;

            if (expr.Argument3 != null)
            {
                arg3 = (Expr)_stack.Pop();
            }
            Expr arg2 = (Expr)_stack.Pop();
            Expr arg1 = (Expr)_stack.Pop();

            if (object.ReferenceEquals(expr.Argument1, arg1) &&
                object.ReferenceEquals(expr.Argument2, arg2) &&
                object.ReferenceEquals(expr.Argument3, arg3))
            {
                _stack.Push(expr);
                return;
            }

            var node = new SubstringFunc(expr.Name
                                         , arg1, arg2, arg3
                                         , expr.Separator1IsComma
                                         , expr.Separator2IsComma
                                         , expr.Comments.Clone());

            _stack.Push(node);
        }
コード例 #2
0
 public override void VisitAfter(SubstringFunc expr)
 {
     if (IsPlaceHolderExpr(expr.Argument1))
     {
         expr.Argument1 = Place((PlaceHolderExpr)expr.Argument1);
     }
     if (IsPlaceHolderExpr(expr.Argument2))
     {
         expr.Argument2 = Place((PlaceHolderExpr)expr.Argument2);
     }
     if (IsPlaceHolderExpr(expr.Argument3))
     {
         expr.Argument3 = Place((PlaceHolderExpr)expr.Argument3);
     }
 }
コード例 #3
0
        public override void ExitSubstring_function(MiniSqlParserParser.Substring_functionContext context)
        {
            var comments = this.GetComments(context);

            Expr arg3     = null;
            bool isComma2 = false;

            if (context.expr().Length == 3)
            {
                arg3     = (Expr)_stack.Pop();
                isComma2 = context.K_FOR() == null;
            }
            Expr arg2     = (Expr)_stack.Pop();
            bool isComma1 = context.K_FROM() == null;
            Expr arg1     = (Expr)_stack.Pop();
            var  name     = this.Coalesce(context.K_SUBSTRING(), context.K_SUBSTR());

            var node = new SubstringFunc(name, arg1, arg2, arg3, isComma1, isComma2, comments);

            _stack.Push(node);
        }
コード例 #4
0
ファイル: Visitor.cs プロジェクト: rguryanov/miniSqlParser
 virtual public void VisitOnSeparator(SubstringFunc expr, int offset, int i)
 {
 }
コード例 #5
0
ファイル: Visitor.cs プロジェクト: rguryanov/miniSqlParser
 virtual public void VisitAfter(SubstringFunc expr)
 {
 }
コード例 #6
0
ファイル: Visitor.cs プロジェクト: rguryanov/miniSqlParser
 virtual public void VisitBefore(SubstringFunc expr)
 {
 }
コード例 #7
0
 public void VisitOnSeparator(SubstringFunc expr, int offset, int i)
 {
     _visitor.VisitOnSeparator(expr, offset, i);
 }
コード例 #8
0
 public void VisitAfter(SubstringFunc expr)
 {
     _visitor.VisitAfter(expr);
 }
コード例 #9
0
 public void VisitBefore(SubstringFunc expr)
 {
     _visitor.VisitBefore(expr);
 }