-//\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 "(?= )" and "(?! )" */\r
-class lookAhead\r
- extends Or\r
-{\r
- boolean reverse;\r
- lookAhead(boolean b)\r
- {\r
- reverse = b;\r
- }\r
-\r
- public Pattern getNext()\r
- {\r
- return null;\r
- }\r
-\r
- public int nextMatch(int pos, Pthings pt)\r
- {\r
- Pattern p = super.getNext();\r
- if (p != null)\r
- {\r
- return p.matchInternal(pos, pt);\r
- }\r
- else\r
- {\r
- return pos;\r
- }\r
- }\r
-\r
- public int matchInternal(int pos, Pthings pt)\r
- {\r
- if (super.matchInternal(pos, pt) >= 0)\r
- {\r
- if (reverse)\r
- {\r
- return -1;\r
- }\r
- else\r
- {\r
- return nextMatch(pos, pt);\r
- }\r
- }\r
- else\r
- {\r
- if (reverse)\r
- {\r
- return nextMatch(pos, pt);\r
- }\r
- else\r
- {\r
- return -1;\r
- }\r
- }\r
- }\r
-\r
- String leftForm()\r
- {\r
- if (reverse)\r
- {\r
- return "(?!";\r
- }\r
- else\r
- {\r
- return "(?=";\r
- }\r
- }\r
-\r
- public patInt minChars()\r
- {\r
- return new patInt(0);\r
- }\r
-\r
- public patInt maxChars()\r
- {\r
- return new patInt(0);\r
- }\r
-\r
- Pattern clone1(Hashtable h)\r
- {\r
- lookAhead la = new lookAhead(reverse);\r
- h.put(this, la);\r
- h.put(la, la);\r
- for (int i = 0; i < v.size(); i++)\r
- {\r
- la.v.addElement( ( (Pattern) v.elementAt(i)).clone(h));\r
- }\r
- return la;\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.Hashtable;
+
+/** Implements "(?= )" and "(?! )" */
+class lookAhead extends Or
+{
+ boolean reverse;
+
+ lookAhead(boolean b)
+ {
+ reverse = b;
+ }
+
+ public Pattern getNext()
+ {
+ return null;
+ }
+
+ public int nextMatch(int pos, Pthings pt)
+ {
+ Pattern p = super.getNext();
+ if (p != null)
+ {
+ return p.matchInternal(pos, pt);
+ }
+ else
+ {
+ return pos;
+ }
+ }
+
+ public int matchInternal(int pos, Pthings pt)
+ {
+ if (super.matchInternal(pos, pt) >= 0)
+ {
+ if (reverse)
+ {
+ return -1;
+ }
+ else
+ {
+ return nextMatch(pos, pt);
+ }
+ }
+ else
+ {
+ if (reverse)
+ {
+ return nextMatch(pos, pt);
+ }
+ else
+ {
+ return -1;
+ }
+ }
+ }
+
+ String leftForm()
+ {
+ if (reverse)
+ {
+ return "(?!";
+ }
+ else
+ {
+ return "(?=";
+ }
+ }
+
+ public patInt minChars()
+ {
+ return new patInt(0);
+ }
+
+ public patInt maxChars()
+ {
+ return new patInt(0);
+ }
+
+ Pattern clone1(Hashtable h)
+ {
+ lookAhead la = new lookAhead(reverse);
+ h.put(this, la);
+ h.put(la, la);
+ for (int i = 0; i < v.size(); i++)
+ {
+ la.v.addElement(((Pattern) v.elementAt(i)).clone(h));
+ }
+ return la;
+ }
+}