merge from 2_4_Release branch
[jalview.git] / src / com / stevesoft / pat / Multi.java
index 14b3a06..1fe197d 100755 (executable)
@@ -1,85 +1,90 @@
-//\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
-/** Matches any number of instances of sub Pattern\r
- this was the hardest method to write.  It implements\r
- '+', '*', '?', "{0,10}", "{5,}", "{5}", etc.\r
- @see pat.Multi_stage2\r
- @see pat.MultiMin\r
- */\r
-class Multi\r
-    extends PatternSub\r
-{\r
-  patInt a, b;\r
-  public patInt minChars()\r
-  {\r
-    return a.mul(p.countMinChars());\r
-  }\r
-\r
-  public patInt maxChars()\r
-  {\r
-    return b.mul(p.countMaxChars());\r
-  }\r
-\r
-  Pattern p;\r
-  Multi_stage2 st2;\r
-  public boolean matchFewest = false;\r
-  /**\r
-      @param a The fewest number of times the sub pattern can match.\r
-      @param b The maximum number of times the sub pattern can match.\r
-      @param p The sub pattern.\r
-      @see Multi_stage2\r
-      @see MultiMin\r
-   */\r
-  public Multi(patInt a, patInt b, Pattern p)\r
-      throws RegSyntax\r
-  {\r
-    this.a = a;\r
-    this.b = b;\r
-    this.p = p;\r
-    st2 = new Multi_stage2(a, b, p);\r
-    st2.parent = this;\r
-    sub = st2.sub;\r
-  }\r
-\r
-  public String toString()\r
-  {\r
-    st2.matchFewest = matchFewest;\r
-    return st2.toString();\r
-  }\r
-\r
-  public int matchInternal(int pos, Pthings pt)\r
-  {\r
-    try\r
-    {\r
-      st2 = new Multi_stage2(a, b, p);\r
-    }\r
-    catch (RegSyntax r__)\r
-    {}\r
-    st2.matchFewest = matchFewest;\r
-    st2.parent = this;\r
-    return st2.matchInternal(pos, pt);\r
-  }\r
-\r
-  public Pattern clone1(Hashtable h)\r
-  {\r
-    try\r
-    {\r
-      Multi m = new Multi(a, b, ( (Pattern) p).clone(h));\r
-      m.matchFewest = matchFewest;\r
-      return m;\r
-    }\r
-    catch (RegSyntax rs)\r
-    {\r
-      return null;\r
-    }\r
-  }\r
-};\r
+//
+// 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.*;
+
+/**
+ * Matches any number of instances of sub Pattern this was the hardest method to
+ * write. It implements '+', '*', '?', "{0,10}", "{5,}", "{5}", etc.
+ * 
+ * @see pat.Multi_stage2
+ * @see pat.MultiMin
+ */
+class Multi extends PatternSub
+{
+  patInt a, b;
+
+  public patInt minChars()
+  {
+    return a.mul(p.countMinChars());
+  }
+
+  public patInt maxChars()
+  {
+    return b.mul(p.countMaxChars());
+  }
+
+  Pattern p;
+
+  Multi_stage2 st2;
+
+  public boolean matchFewest = false;
+
+  /**
+   * @param a
+   *                The fewest number of times the sub pattern can match.
+   * @param b
+   *                The maximum number of times the sub pattern can match.
+   * @param p
+   *                The sub pattern.
+   * @see Multi_stage2
+   * @see MultiMin
+   */
+  public Multi(patInt a, patInt b, Pattern p) throws RegSyntax
+  {
+    this.a = a;
+    this.b = b;
+    this.p = p;
+    st2 = new Multi_stage2(a, b, p);
+    st2.parent = this;
+    sub = st2.sub;
+  }
+
+  public String toString()
+  {
+    st2.matchFewest = matchFewest;
+    return st2.toString();
+  }
+
+  public int matchInternal(int pos, Pthings pt)
+  {
+    try
+    {
+      st2 = new Multi_stage2(a, b, p);
+    } catch (RegSyntax r__)
+    {
+    }
+    st2.matchFewest = matchFewest;
+    st2.parent = this;
+    return st2.matchInternal(pos, pt);
+  }
+
+  public Pattern clone1(Hashtable h)
+  {
+    try
+    {
+      Multi m = new Multi(a, b, ((Pattern) p).clone(h));
+      m.matchFewest = matchFewest;
+      return m;
+    } catch (RegSyntax rs)
+    {
+      return null;
+    }
+  }
+};