示例#1
0
        /// <summary> constructor</summary>
        /// <param name="l">
        /// </param>
        /// <param name="o">
        /// </param>
        /// <param name="r">
        /// </param>
        public BinaryExpr(Expr l, int o, Expr r)
        {
            op = o;
            left = l;
            right = r;
            fib1 = null;
            switch (op)
            {

                case ADD:
                case SUB:
                case MULT:
                case DIV:
                case MOD: isNumerical_Renamed_Field = true; isBoolean_Renamed_Field = false; break;

                case OR:
                case AND:
                case EQ:
                case NE:
                case LE:
                case GE:
                case LT:
                case GT: isNumerical_Renamed_Field = false; isBoolean_Renamed_Field = true;
                    goto default;

                default:
                    break;

            }
        }
示例#2
0
        private bool compNodeSetNumerical(Expr left, Expr right, VTDNav vn, int op)
        {
            int    i, i1 = 0, stackSize;
            double d;

            try {
                d = right.evalNumber(vn);
                vn.push2();
                stackSize = vn.contextStack2.size;
                while ((i = left.evalNodeSet(vn)) != -1)
                {
                    //i1 = getStringVal(vn,i);
                    if (compareVNumber2(i, vn, d, op))
                    {
                        left.reset(vn);
                        vn.contextStack2.size = stackSize;
                        vn.pop2();
                        return(true);
                    }
                }
                vn.contextStack2.size = stackSize;
                vn.pop2();
                left.reset(vn);
                return(false);
            } catch (Exception e) {
                throw new System.SystemException("Undefined behavior");
            }
        }
示例#3
0
#pragma warning restore CS1591 // Missing XML comment for publicly visible type or member
        /// <summary> constructor</summary>
        /// <param name="l">
        /// </param>
        /// <param name="o">
        /// </param>
        /// <param name="r">
        /// </param>
        public BinaryExpr(Expr l, int o, Expr r)
        {
            op    = o;
            left  = l;
            right = r;
            fib1  = null;
            switch (op)
            {
            case ADD:
            case SUB:
            case MULT:
            case DIV:
            case MOD: isNumerical_Renamed_Field = true; isBoolean_Renamed_Field = false; break;

            case OR:
            case AND:
            case EQ:
            case NE:
            case LE:
            case GE:
            case LT:
            case GT: isNumerical_Renamed_Field = false; isBoolean_Renamed_Field = true;
                goto default;

            default:
                break;
            }
            compType = computeCompType();
        }
示例#4
0
 //public int getPositon(){
 //    return fib.size_Renamed_Field;
 //}
 /// <summary>
 /// 
 /// </summary>
 /// <param name="f"></param>
 /// <param name="l"></param>
 public PathExpr(Expr f, LocationPathExpr l)
 {
     fe = f;
     lpe = l;
     //first_time = true;
     evalState = 0;
     //fib = new FastIntBuffer(8);
     ih = new intHash();
 }
示例#5
0
 //public int getPositon(){
 //	return fib.size_Renamed_Field;
 //}
 /// <summary>
 ///
 /// </summary>
 /// <param name="f"></param>
 /// <param name="l"></param>
 public PathExpr(Expr f, LocationPathExpr l)
 {
     fe  = f;
     lpe = l;
     //first_time = true;
     evalState = 0;
     //fib = new FastIntBuffer(8);
     ih = new intHash();
 }
示例#6
0
        private bool compNodeSetNodeSet(Expr left, Expr right, VTDNav vn, int op)
        {
            int i, i1 = 0, stackSize, s1;

            try
            {
                if (fib1 == null)
                {
                    fib1 = new FastIntBuffer(BUF_SZ_EXP);
                }
                vn.push2();
                stackSize = vn.contextStack2.size;
                while ((i = left.evalNodeSet(vn)) != -1)
                {
                    i1 = getStringVal(vn, i);
                    if (i1 != -1)
                    {
                        fib1.append(i1);
                    }
                }
                left.reset(vn);
                vn.contextStack2.size = stackSize;
                vn.pop2();
                vn.push2();
                stackSize = vn.contextStack2.size;
                while ((i = right.evalNodeSet(vn)) != -1)
                {
                    i1 = getStringVal(vn, i);
                    if (i1 != -1)
                    {
                        s1 = fib1.size_Renamed_Field;
                        for (int k = 0; k < s1; k++)
                        {
                            bool b = compareVV(fib1.intAt(k), vn, i1, op);
                            if (b)
                            {
                                fib1.size_Renamed_Field = 0;
                                vn.contextStack2.size   = stackSize;
                                vn.pop2();
                                right.reset(vn);
                                return(true);
                            }
                        }
                    }
                }
                vn.contextStack2.size = stackSize;
                vn.pop2();
                right.reset(vn);
                fib1.size_Renamed_Field = 0;
                return(false);
            }
            catch (Exception e)
            {
                fib1.size_Renamed_Field = 0;
                throw new System.SystemException("Undefined behavior");
            }
        }
示例#7
0
 //public int position;
 public FilterExpr(Expr l, Predicate pr)
 {
     e = l;
     p = pr;
     //stackSize = 0;
     //position = 1;
     //fib = new FastIntBuffer(8);
     first_time = true;
     out_of_range = false;
     pr.fe = this;
 }
示例#8
0
        //public int position;

        public FilterExpr(Expr l, Predicate pr)
        {
            e = l;
            p = pr;
            //stackSize = 0;
            //position = 1;
            //fib = new FastIntBuffer(8);
            first_time     = true;
            out_of_range   = false;
            pr.fe          = this;
            needReordering = l.needReordering;
        }
示例#9
0
        private bool compNodeSetString(Expr left, Expr right, VTDNav vn, int op)
        {
            int    i, i1 = 0, stackSize;
            String s;

            try
            {
                s = right.evalString(vn);
                vn.push2();
                stackSize = vn.contextStack2.size;
                while ((i = left.evalNodeSet(vn)) != -1)
                {
                    int t = vn.getTokenType(i);
                    if (t != VTDNav.TOKEN_STARTING_TAG &&
                        t != VTDNav.TOKEN_DOCUMENT)
                    {
                        i1 = getStringVal(vn, i);
                        // if (i1==-1 && s.length()==0)
                        //return true;
                        if (i1 != -1)
                        {
                            bool b = compareVString1(i1, vn, s, op);
                            if (b)
                            {
                                left.reset(vn);
                                vn.contextStack2.size = stackSize;
                                vn.pop2();
                                return(b);
                            }
                        }
                    }
                    else
                    {
                        bool b = vn.XPathStringVal_Matches(i, s);
                        if (b)
                        {
                            left.reset(vn);
                            vn.contextStack2.size = stackSize;
                            vn.pop2();
                            return(b);
                        }
                    }
                }
                vn.contextStack2.size = stackSize;
                vn.pop2();
                left.reset(vn);
                return(false); // compareEmptyNodeSet(op, s);
            }
            catch (Exception e)
            {
                throw new System.SystemException("Undefined behavior");
            }
        }
示例#10
0
 /// <summary>
 ///
 /// </summary>
 public override void markCacheable2()
 {
     if (left.isFinal() && left.NodeSet)
     {
         CachedExpr ce = new CachedExpr(left);
         left = ce;
     }
     left.markCacheable2();
     if (right.isFinal() && right.NodeSet)
     {
         CachedExpr ce = new CachedExpr(right);
         right = ce;
     }
     right.markCacheable2();
 }
示例#11
0
 public void addArg(Expr e)
 {
     Alist al = argumentList;
     if (argumentList == null)
     {
         argumentList = new Alist();
         argumentList.e = e;
         argCount1++;
         return;
     }
     while (al.next != null)
     {
         al = al.next;
     }
     al.next = new Alist();
     //al = new Alist();
     al.next.e = e;
     argCount1++;
 }
示例#12
0
	/// <summary>
	/// 
	/// </summary>
	public override void markCacheable2(){
		if (left.isFinal() && left.NodeSet){
			CachedExpr ce = new CachedExpr(left);
			left = ce;
		} 
		left.markCacheable2();
		if (right.isFinal() && right.NodeSet){
			CachedExpr ce = new CachedExpr(right);
			right = ce;
		} 
		right.markCacheable2();
	}
示例#13
0
    private bool compStringNodeSet(Expr left, Expr right, VTDNav vn, int op)
    {
        int i, i1 = 0, stackSize;
        String s;
        try
        {
            s = left.evalString(vn);
            vn.push2();
            stackSize = vn.contextStack2.size;
            while ((i = right.evalNodeSet(vn)) != -1)
            {
                    int t = vn.getTokenType(i);
                    if (t != VTDNav.TOKEN_STARTING_TAG
                            && t != VTDNav.TOKEN_DOCUMENT)
                    {

                        i1 = getStringVal(vn, i);
                        if (i1 != -1)
                        {
                            bool b = compareVString2(i1, vn, s, op);
                            if (b)
                            {
                                right.reset(vn);
                                vn.contextStack2.size = stackSize;
                                vn.pop2();
                                return b;
                            }
                        }
                    }
                    else
                    {
                        bool b = vn.XPathStringVal_Matches(i, s);
                        if (b)
                        {
                            right.reset(vn);
                            vn.contextStack2.size = stackSize;
                            vn.pop2();
                            return b;
                        }
                    }
                }
            vn.contextStack2.size = stackSize;
            vn.pop2();
            right.reset(vn);
            return false;// compareEmptyNodeSet(op, s);
        }
        catch (Exception e)
        {
            throw new System.SystemException("Undefined behavior");
        }
    }
示例#14
0
	private bool compNodeSetNumerical(Expr left, Expr right, VTDNav vn, int op ){
	     int i, i1 = 0, stackSize;
	     double d;
       try {
           d = right.evalNumber(vn);
           vn.push2();
           stackSize = vn.contextStack2.size;
           while ((i = left.evalNodeSet(vn)) != -1) {
               //i1 = getStringVal(vn,i); 
               if (compareVNumber2(i,vn,d,op)){
                   left.reset(vn);
                   vn.contextStack2.size = stackSize;
                   vn.pop2();
                   return true;
               }
           }    
           vn.contextStack2.size = stackSize;
           vn.pop2();
           left.reset(vn);            
           return false; 
       } catch (Exception e) {
           throw new System.SystemException("Undefined behavior");
       }
	}
示例#15
0
 private bool compNodeSetNodeSet(Expr left, Expr right, VTDNav vn, int op)
 {
     int i, i1 = 0, stackSize, s1;
     try
     {
         if (fib1 == null)
             fib1 = new FastIntBuffer(BUF_SZ_EXP);
         vn.push2();
         stackSize = vn.contextStack2.size;
         while ((i = left.evalNodeSet(vn)) != -1)
         {
             i1 = getStringVal(vn, i);
             if (i1 != -1)
                 fib1.append(i1);
         }
         left.reset(vn);
         vn.contextStack2.size = stackSize;
         vn.pop2();
         vn.push2();
         stackSize = vn.contextStack2.size;
         while ((i = right.evalNodeSet(vn)) != -1)
         {
             i1 = getStringVal(vn, i);
             if (i1 != -1)
             {
                 s1 = fib1.size_Renamed_Field;
                 for (int k = 0; k < s1; k++)
                 {
                     bool b = compareVV(fib1.intAt(k), vn, i1, op);
                     if (b)
                     {
                         fib1.size_Renamed_Field=0;
                         vn.contextStack2.size = stackSize;
                         vn.pop2();
                         right.reset(vn);
                         return true;
                     }
                 }
             }
         }
         vn.contextStack2.size = stackSize;
         vn.pop2();
         right.reset(vn);
         fib1.size_Renamed_Field=0;
         return false;
     }
     catch (Exception e)
     {
         fib1.size_Renamed_Field=0;
         throw new System.SystemException("Undefined behavior");
     }
 }
示例#16
0
 private bool compStringNodeSet(Expr left, Expr right, VTDNav vn, int op)
 {
     int i, i1 = 0, stackSize;
     String s;
     try
     {
     s = left.evalString(vn);
     vn.push2();
     stackSize = vn.contextStack2.size;
     while ((i = right.evalNodeSet(vn)) != -1)
     {
         i1 = getStringVal(vn, i);
         if (i1 != -1)
         {
             bool b = compareVString2(i1, vn, s, op);
             if (b)
             {
                 right.reset(vn);
                 vn.contextStack2.size = stackSize;
                 vn.pop2();
                 return b;
             }
         }
     }
     vn.contextStack2.size = stackSize;
     vn.pop2();
     right.reset(vn);
     return false;// compareEmptyNodeSet(op, s);
     }
     catch (Exception e)
     {
     throw new System.SystemException("Undefined behavior");
     }
 }