-//
-// 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;
- }
- }
-};
+//\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
+ * Matches any number of instances of sub Pattern this was the hardest method to\r
+ * write. It implements '+', '*', '?', "{0,10}", "{5,}", "{5}", etc.\r
+ * \r
+ * @see pat.Multi_stage2\r
+ * @see pat.MultiMin\r
+ */\r
+class Multi extends PatternSub\r
+{\r
+ patInt a, b;\r
+\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
+\r
+ Multi_stage2 st2;\r
+\r
+ public boolean matchFewest = false;\r
+\r
+ /**\r
+ * @param a\r
+ * The fewest number of times the sub pattern can match.\r
+ * @param b\r
+ * The maximum number of times the sub pattern can match.\r
+ * @param p\r
+ * The sub pattern.\r
+ * @see Multi_stage2\r
+ * @see MultiMin\r
+ */\r
+ public Multi(patInt a, patInt b, Pattern p) 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
+ } catch (RegSyntax r__)\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
+ } catch (RegSyntax rs)\r
+ {\r
+ return null;\r
+ }\r
+ }\r
+};\r