- */\r
-public class FastBracket extends Bracket {\r
- int min, max;\r
- BitSet bs;\r
- FastBracket(boolean n) { super(n); }\r
- // This routine can optimize a bracket, possibly\r
- // it will replace it with a FastBracket.\r
- static Bracket process(Bracket b,boolean ignc) {\r
- Vector v = b.v;\r
- b.pv = null;\r
- try {\r
-\r
- // Expand out the vector to make separate\r
- // entries for other cases if ignoreCase is\r
- // turned on.\r
- Vector nv = v;\r
- if(ignc) {\r
- nv = new Vector();\r
- for(int i=0;i<v.size();i++) {\r
- Pattern p = (Pattern)v.elementAt(i);\r
- nv.addElement(p);\r
- if(p instanceof oneChar) {\r
- oneChar oc = (oneChar)p;\r
- nv.addElement(new oneChar(oc.altc));\r
- } else if(p instanceof Range) {\r
- Range ra = (Range)p;\r
- nv.addElement(new Range(ra.altlo,ra.althi));\r
- }\r
- }\r
- }\r
- v = nv;\r
-\r
- // Bubble sort, make sure elements\r
- // are in order. This will allow us\r
- // to merge them.\r
- for(int i=0;i<v.size()-1;i++) {\r
- for(int j=0;j<v.size()-1;j++) {\r
- char c1 = getl(v.elementAt(j));\r
- char c2 = getl(v.elementAt(j+1));\r
- if(c2 < c1) {\r
- Object o = v.elementAt(j);\r
- v.setElementAt(v.elementAt(j+1),j);\r
- v.setElementAt(o,j+1);\r
- }\r
- }\r
- }\r
-\r
- nv = new Vector();\r
- // merge -- remove overlaps\r
- Pattern p = (Pattern)v.elementAt(0);\r
- nv.addElement(p);\r
- for(int i=1;i<v.size();i++) {\r
- if(geth(p)+1 >= getl(v.elementAt(i))) {\r
- Pattern p2 = (Pattern)v.elementAt(i);\r
- char lo = min(getl(p),getl(p2));\r
- char hi = max(geth(p),geth(p2));\r
- nv.setElementAt(p=mkelem(lo,hi),nv.size()-1);\r
- } else {\r
- p = (Pattern)v.elementAt(i);\r
- nv.addElement(p);\r
- }\r
- }\r
-\r
- b.v = v = nv;\r
- } catch(RegSyntax e) {\r
- e.printStackTrace();\r
+ */\r
+public class FastBracket\r
+ extends Bracket\r
+{\r
+ int min, max;\r
+ BitSet bs;\r
+ FastBracket(boolean n)\r
+ {\r
+ super(n);\r
+ }\r
+\r
+ // This routine can optimize a bracket, possibly\r
+ // it will replace it with a FastBracket.\r
+ static Bracket process(Bracket b, boolean ignc)\r
+ {\r
+ Vector v = b.v;\r
+ b.pv = null;\r
+ try\r
+ {\r
+\r
+ // Expand out the vector to make separate\r
+ // entries for other cases if ignoreCase is\r
+ // turned on.\r
+ Vector nv = v;\r
+ if (ignc)\r
+ {\r
+ nv = new Vector();\r
+ for (int i = 0; i < v.size(); i++)\r
+ {\r
+ Pattern p = (Pattern) v.elementAt(i);\r
+ nv.addElement(p);\r
+ if (p instanceof oneChar)\r
+ {\r
+ oneChar oc = (oneChar) p;\r
+ nv.addElement(new oneChar(oc.altc));\r
+ }\r
+ else if (p instanceof Range)\r
+ {\r
+ Range ra = (Range) p;\r
+ nv.addElement(new Range(ra.altlo, ra.althi));\r
+ }\r