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