private double sum(VTDNav vn) { double d = 0; /*if (argCount() != 1 || argumentList.e.NodeSet == false) throw new System.ArgumentException("sum()'s argument count is invalid");*/ vn.push2(); try { a = 0; int i1; while ((a = argumentList.e.evalNodeSet(vn)) != -1) { int t = vn.getTokenType(a); if (t == VTDNav.TOKEN_STARTING_TAG) { i1 = vn.getText(); if (i1 != -1) d = d + vn.parseDouble(i1); if (System.Double.IsNaN(d)) break; } else if (t == VTDNav.TOKEN_ATTR_NAME || t == VTDNav.TOKEN_ATTR_NS) { d = d + vn.parseDouble(a + 1); if (System.Double.IsNaN(d)) break; } else if (t == VTDNav.TOKEN_CHARACTER_DATA || t == VTDNav.TOKEN_CDATA_VAL || t == VTDNav.TOKEN_COMMENT) { d = d + vn.parseDouble(a); if (System.Double.IsNaN(d)) break; } else if (t == VTDNav.TOKEN_PI_NAME) { if (a + 1 < vn.vtdSize && vn.getTokenType(a + 1) == VTDNav.TOKEN_PI_VAL) { d += vn.parseDouble(a + 1); } else { d = Double.NaN; break; } } // fib1.append(i); } argumentList.e.reset(vn); vn.pop2(); return d; } catch (System.Exception e) { argumentList.e.reset(vn); vn.pop2(); return System.Double.NaN; } }
public override double evalNumber(VTDNav vn) { double d = Double.NaN; int a = -1; vn.push2(); int size = vn.contextStack2.size; try { a = evalNodeSet(vn); if (a != -1) { int t = vn.getTokenType(a); if (t == VTDNav.TOKEN_ATTR_NAME) { d = vn.parseDouble(a + 1); } else if (t == VTDNav.TOKEN_STARTING_TAG || t == VTDNav.TOKEN_DOCUMENT) { String s = vn.getXPathStringVal(); d = Double.Parse(s); } else if (t == VTDNav.TOKEN_PI_NAME) { if (a + 1 < vn.vtdSize || vn.getTokenType(a + 1) == VTDNav.TOKEN_PI_VAL) d = vn.parseDouble(a + 1); } else d = vn.parseDouble(a); } } catch (Exception e) { } vn.contextStack2.size = size; reset(vn); vn.pop2(); //return s; return d; }
/// <summary> /// /// </summary> /// <param name="vn"></param> /// <returns></returns> public override double evalNumber(VTDNav vn) { double d = Double.NaN; int a = 0x7fffffff, k = -1; vn.push2(); int size = vn.contextStack2.size; try { while ((k = evalNodeSet(vn)) != -1) { //a = evalNodeSet(vn); if (k < a) a = k; } if (a == 0x7fffffff) a = -1; if (a != -1) { int t = vn.getTokenType(a); if (t == VTDNav.TOKEN_ATTR_NAME) { d = vn.parseDouble(a + 1); } else if (t == VTDNav.TOKEN_STARTING_TAG || t == VTDNav.TOKEN_DOCUMENT) { d = vn.XPathStringVal2Double(a);//Double.parseDouble(s); } else if (t == VTDNav.TOKEN_PI_NAME) { if (a + 1 < vn.vtdSize || vn.getTokenType(a + 1) == VTDNav.TOKEN_PI_VAL) //s = vn.toString(a+1); d = vn.parseDouble(a + 1); else d = Double.NaN; } else d = vn.parseDouble(a); } } catch (Exception e) { } vn.contextStack2.size = size; reset(vn); vn.pop2(); //return s; return d; }
private bool compareVNumber2(int k, VTDNav vn, double d, int op) { double d1; int t = vn.getTokenType(k); if (t == VTDNav.TOKEN_STARTING_TAG || t == VTDNav.TOKEN_DOCUMENT) { d1 = vn.XPathStringVal2Double(k); } else { k = getStringVal(vn, k); d1 = vn.parseDouble(k); } switch (op) { case EQ: return d1 == d; case NE: return d1 != d; case GE: return d1 >= d; case LE: return d1 <= d; case GT: return d1 > d; default: return d1 < d; } }
public override double evalNumber(VTDNav vn) { //double d; int a = - 1; vn.push2(); int size = vn.contextStack2.size; try { a = evalNodeSet(vn); if (a != - 1) { if (vn.getTokenType(a) == VTDNav.TOKEN_ATTR_NAME) { a++; } else if (vn.getTokenType(a) == VTDNav.TOKEN_STARTING_TAG) { a = vn.getText(); } } } catch (System.Exception e) { } vn.contextStack2.size = size; reset(vn); vn.pop2(); try { if (a != - 1) return vn.parseDouble(a); } catch (NavException e) { } return System.Double.NaN; }
private bool compareVNumber2(int k, VTDNav vn, double d, int op) { double d1 = vn.parseDouble(k); switch (op) { case EQ: return d1 == d; case NE: return d1 != d; case GE: return d1 >= d; case LE: return d1 <= d; case GT: return d1 > d; default: return d1 < d; } }
private bool compareVNumber1(int k, VTDNav vn, double d, int op) { double d1 = vn.parseDouble(k); switch (op) { case EQ: return d == d1; case NE: return d != d1; case GE: return d >= d1; case LE: return d <= d1; case GT: return d > d1; default: return d < d1; } }