// -- Happy Computing!\r
//\r
package com.stevesoft.pat;\r
-import java.util.Vector;\r
-import java.util.Hashtable;\r
+\r
+import java.util.*;\r
\r
/** The Bracket is a form of the Or class,\r
implements the pattern element [ ]. */\r
-class Bracket extends Or {\r
- boolean neg;\r
- Bracket(boolean n) { neg = n; }\r
- String leftForm() {\r
- if(neg)\r
- return "[^";\r
- else\r
- return "[";\r
+class Bracket\r
+ extends Or\r
+{\r
+ boolean neg;\r
+ Bracket(boolean n)\r
+ {\r
+ neg = n;\r
+ }\r
+\r
+ String leftForm()\r
+ {\r
+ if (neg)\r
+ {\r
+ return "[^";\r
+ }\r
+ else\r
+ {\r
+ return "[";\r
}\r
- String rightForm() { return "]"; }\r
- String sepForm() { return ""; }\r
- public int matchInternal(int pos,Pthings pt) {\r
- if(pos >= pt.src.length()) return -1;\r
- int r = super.matchInternal(pos,pt);\r
- if((neg && r<0)||(!neg && r>=0))\r
- return nextMatch(pos+1,pt);\r
- return -1;\r
+ }\r
+\r
+ String rightForm()\r
+ {\r
+ return "]";\r
+ }\r
+\r
+ String sepForm()\r
+ {\r
+ return "";\r
+ }\r
+\r
+ public int matchInternal(int pos, Pthings pt)\r
+ {\r
+ if (pos >= pt.src.length())\r
+ {\r
+ return -1;\r
}\r
- public patInt minChars() { return new patInt(1); }\r
- public patInt maxChars() { return new patInt(1); }\r
-\r
- public Or addOr(Pattern p) {\r
- pv = null;\r
- v.addElement(p);\r
- p.setParent(null);\r
- return this;\r
+ int r = super.matchInternal(pos, pt);\r
+ if ( (neg && r < 0) || (!neg && r >= 0))\r
+ {\r
+ return nextMatch(pos + 1, pt);\r
}\r
- public Pattern clone1(Hashtable h) {\r
- Bracket b = new Bracket(neg);\r
- b.v = new Vector();\r
- for(int i=0;i<v.size();i++)\r
- b.v.addElement( ((Pattern)v.elementAt(i)).clone1(h) );\r
- return b;\r
+ return -1;\r
+ }\r
+\r
+ public patInt minChars()\r
+ {\r
+ return new patInt(1);\r
+ }\r
+\r
+ public patInt maxChars()\r
+ {\r
+ return new patInt(1);\r
+ }\r
+\r
+ public Or addOr(Pattern p)\r
+ {\r
+ pv = null;\r
+ v.addElement(p);\r
+ p.setParent(null);\r
+ return this;\r
+ }\r
+\r
+ public Pattern clone1(Hashtable h)\r
+ {\r
+ Bracket b = new Bracket(neg);\r
+ b.v = new Vector();\r
+ for (int i = 0; i < v.size(); i++)\r
+ {\r
+ b.v.addElement( ( (Pattern) v.elementAt(i)).clone1(h));\r
}\r
+ return b;\r
+ }\r
};\r