JAL-1807 still testing
[jalviewjs.git] / unused / com / stevesoft / pat / Or.java
index 9b619f6..e251b46 100644 (file)
-//
-// This software is now distributed according to
-// the Lesser Gnu Public License.  Please see
-// http://www.gnu.org/copyleft/lesser.txt for
-// the details.
-//    -- Happy Computing!
-//
-package com.stevesoft.pat;
-
-import java.util.*;
-
-/**
- * This class implements the (?: ... ) extended Pattern. It provides a base
- * class from which we derive the [ ... ], ( ... ), (?! ... ), and (?= ... )
- * patterns.
- */
-class Or extends Pattern
-{
-  Vector v;
-
-  Pattern[] pv = null;
-
-  Or()
-  {
-    v = new Vector();
-  }
-
-  String leftForm()
-  {
-    return "(?:";
-  }
-
-  String rightForm()
-  {
-    return ")";
-  }
-
-  String sepForm()
-  {
-    return "|";
-  }
-
-  public Or addOr(Pattern p)
-  {
-    pv = null;
-    v.addElement(p);
-    p.setParent(this);
-    return this;
-  }
-
-  public String toString()
-  {
-    int i;
-    javajs.util.SB sb = new javajs.util.SB();
-    sb.append(leftForm());
-    if (v.size() > 0)
-    {
-      sb.append(((Pattern) v.elementAt(0)).toString());
-    }
-    for (i = 1; i < v.size(); i++)
-    {
-      sb.append(sepForm());
-      sb.append(((Pattern) v.elementAt(i)).toString());
-    }
-    sb.append(rightForm());
-    sb.append(nextString());
-    return sb.toString();
-  }
-
-  public int matchInternal(int pos, Pthings pt)
-  {
-    if (pv == null)
-    {
-      pv = new Pattern[v.size()];
-      v.copyInto(pv);
-    }
-    for (int i = 0; i < v.size(); i++)
-    {
-      Pattern p = pv[i]; // (Pattern)v.elementAt(i);
-      int r = p.matchInternal(pos, pt);
-      if (r >= 0)
-      {
-        return r;
-      }
-    }
-    return -1;
-  }
-
-  public patInt minChars()
-  {
-    if (v.size() == 0)
-    {
-      return new patInt(0);
-    }
-    patInt m = ((Pattern) v.elementAt(0)).countMinChars();
-    for (int i = 1; i < v.size(); i++)
-    {
-      Pattern p = (Pattern) v.elementAt(i);
-      m.mineq(p.countMinChars());
-    }
-    return m;
-  }
-
-  public patInt maxChars()
-  {
-    if (v.size() == 0)
-    {
-      return new patInt(0);
-    }
-    patInt m = ((Pattern) v.elementAt(0)).countMaxChars();
-    for (int i = 1; i < v.size(); i++)
-    {
-      Pattern p = (Pattern) v.elementAt(i);
-      m.maxeq(p.countMaxChars());
-    }
-    return m;
-  }
-
-  Pattern clone1(Hashtable h)
-  {
-    Or o = new Or();
-    h.put(this, o);
-    h.put(o, o);
-    for (int i = 0; i < v.size(); i++)
-    {
-      o.v.addElement(((Pattern) v.elementAt(i)).clone(h));
-    }
-    return o;
-  }
-};
+//\r
+// This software is now distributed according to\r
+// the Lesser Gnu Public License.  Please see\r
+// http://www.gnu.org/copyleft/lesser.txt for\r
+// the details.\r
+//    -- Happy Computing!\r
+//\r
+package com.stevesoft.pat;\r
+\r
+import java.util.*;\r
+\r
+/**\r
+ * This class implements the (?: ... ) extended Pattern. It provides a base\r
+ * class from which we derive the [ ... ], ( ... ), (?! ... ), and (?= ... )\r
+ * patterns.\r
+ */\r
+class Or extends Pattern\r
+{\r
+  Vector v;\r
+\r
+  Pattern[] pv = null;\r
+\r
+  Or()\r
+  {\r
+    v = new Vector();\r
+  }\r
+\r
+  String leftForm()\r
+  {\r
+    return "(?:";\r
+  }\r
+\r
+  String rightForm()\r
+  {\r
+    return ")";\r
+  }\r
+\r
+  String sepForm()\r
+  {\r
+    return "|";\r
+  }\r
+\r
+  public Or addOr(Pattern p)\r
+  {\r
+    pv = null;\r
+    v.addElement(p);\r
+    p.setParent(this);\r
+    return this;\r
+  }\r
+\r
+  public String toString()\r
+  {\r
+    int i;\r
+    javajs.util.SB sb = new javajs.util.SB();\r
+    sb.append(leftForm());\r
+    if (v.size() > 0)\r
+    {\r
+      sb.append(((Pattern) v.elementAt(0)).toString());\r
+    }\r
+    for (i = 1; i < v.size(); i++)\r
+    {\r
+      sb.append(sepForm());\r
+      sb.append(((Pattern) v.elementAt(i)).toString());\r
+    }\r
+    sb.append(rightForm());\r
+    sb.append(nextString());\r
+    return sb.toString();\r
+  }\r
+\r
+  public int matchInternal(int pos, Pthings pt)\r
+  {\r
+    if (pv == null)\r
+    {\r
+      pv = new Pattern[v.size()];\r
+      v.copyInto(pv);\r
+    }\r
+    for (int i = 0; i < v.size(); i++)\r
+    {\r
+      Pattern p = pv[i]; // (Pattern)v.elementAt(i);\r
+      int r = p.matchInternal(pos, pt);\r
+      if (r >= 0)\r
+      {\r
+        return r;\r
+      }\r
+    }\r
+    return -1;\r
+  }\r
+\r
+  public patInt minChars()\r
+  {\r
+    if (v.size() == 0)\r
+    {\r
+      return new patInt(0);\r
+    }\r
+    patInt m = ((Pattern) v.elementAt(0)).countMinChars();\r
+    for (int i = 1; i < v.size(); i++)\r
+    {\r
+      Pattern p = (Pattern) v.elementAt(i);\r
+      m.mineq(p.countMinChars());\r
+    }\r
+    return m;\r
+  }\r
+\r
+  public patInt maxChars()\r
+  {\r
+    if (v.size() == 0)\r
+    {\r
+      return new patInt(0);\r
+    }\r
+    patInt m = ((Pattern) v.elementAt(0)).countMaxChars();\r
+    for (int i = 1; i < v.size(); i++)\r
+    {\r
+      Pattern p = (Pattern) v.elementAt(i);\r
+      m.maxeq(p.countMaxChars());\r
+    }\r
+    return m;\r
+  }\r
+\r
+  Pattern clone1(Hashtable h)\r
+  {\r
+    Or o = new Or();\r
+    h.put(this, o);\r
+    h.put(o, o);\r
+    for (int i = 0; i < v.size(); i++)\r
+    {\r
+      o.v.addElement(((Pattern) v.elementAt(i)).clone(h));\r
+    }\r
+    return o;\r
+  }\r
+};\r