-//
-// 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.*;
-
-/** Implements the parenthesis pattern subelement. */
-class OrMark extends Or
-{
- SubMark sm = new SubMark();
-
- int id;
-
- OrMark(int i)
- {
- sm.om = this;
- id = i;
- }
-
- String leftForm()
- {
- return "(";
- }
-
- public Pattern getNext()
- {
- return sm;
- }
-
- public int matchInternal(int pos, Pthings pt)
- {
- sm.next = super.getNext();
- if (pt.marks == null)
- {
- int n2 = 2 * pt.nMarks + 2;
- pt.marks = new int[n2];
- for (int i = 0; i < n2; i++)
- {
- pt.marks[i] = -1;
- }
- }
- pt.marks[id] = pos;
- int ret = super.matchInternal(pos, pt);
- if (ret < 0)
- {
- pt.marks[id] = -1;
- }
- else if (pt.marks[id] > pt.marks[id + pt.nMarks])
- {
- int swap = pt.marks[id];
- pt.marks[id] = pt.marks[id + pt.nMarks] + 1;
- pt.marks[id + pt.nMarks] = swap + 1;
- }
- return ret;
- }
-
- public Pattern clone1(Hashtable h)
- {
- OrMark om = new OrMark(id);
- h.put(om, om);
- h.put(this, om);
- for (int i = 0; i < v.size(); i++)
- {
- om.v.addElement(((Pattern) v.elementAt(i)).clone(h));
- }
- return om;
- }
-};
+//\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
+/** Implements the parenthesis pattern subelement. */\r
+class OrMark extends Or\r
+{\r
+ SubMark sm = new SubMark();\r
+\r
+ int id;\r
+\r
+ OrMark(int i)\r
+ {\r
+ sm.om = this;\r
+ id = i;\r
+ }\r
+\r
+ String leftForm()\r
+ {\r
+ return "(";\r
+ }\r
+\r
+ public Pattern getNext()\r
+ {\r
+ return sm;\r
+ }\r
+\r
+ public int matchInternal(int pos, Pthings pt)\r
+ {\r
+ sm.next = super.getNext();\r
+ if (pt.marks == null)\r
+ {\r
+ int n2 = 2 * pt.nMarks + 2;\r
+ pt.marks = new int[n2];\r
+ for (int i = 0; i < n2; i++)\r
+ {\r
+ pt.marks[i] = -1;\r
+ }\r
+ }\r
+ pt.marks[id] = pos;\r
+ int ret = super.matchInternal(pos, pt);\r
+ if (ret < 0)\r
+ {\r
+ pt.marks[id] = -1;\r
+ }\r
+ else if (pt.marks[id] > pt.marks[id + pt.nMarks])\r
+ {\r
+ int swap = pt.marks[id];\r
+ pt.marks[id] = pt.marks[id + pt.nMarks] + 1;\r
+ pt.marks[id + pt.nMarks] = swap + 1;\r
+ }\r
+ return ret;\r
+ }\r
+\r
+ public Pattern clone1(Hashtable h)\r
+ {\r
+ OrMark om = new OrMark(id);\r
+ h.put(om, om);\r
+ h.put(this, om);\r
+ for (int i = 0; i < v.size(); i++)\r
+ {\r
+ om.v.addElement(((Pattern) v.elementAt(i)).clone(h));\r
+ }\r
+ return om;\r
+ }\r
+};\r