-//
-// 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.*;
-
-/**
- * This class implements the (?@<>) syntax that matches a balanced parenthesis.
- * Not in perl 5.
- */
-class Group extends Pattern
-{
- char op, cl;
-
- Group(char opi, char cli)
- {
- op = opi;
- cl = cli;
- }
-
- public int matchInternal(int pos, Pthings pt)
- {
- int i, count = 1;
- if (pos < pt.src.length())
- {
- if (!Masked(pos, pt) && pt.src.charAt(pos) != op)
- {
- return -1;
- }
- }
- for (i = pos + 1; i < pt.src.length(); i++)
- {
- char c = pt.src.charAt(i);
- boolean b = !Masked(i, pt);
- if (b && c == ESC)
- {
- i++;
- }
- else
- {
- if (b && c == cl)
- {
- count--;
- }
- if (count == 0)
- {
- return nextMatch(i + 1, pt);
- }
- if (b && c == op)
- {
- count++;
- }
- }
- }
- return -1;
- }
-
- public String toString()
- {
- return "(?@" + op + cl + ")" + nextString();
- }
-
- public patInt minChars()
- {
- return new patInt(2);
- }
-
- Pattern clone1(Hashtable h)
- {
- return new Group(op, cl);
- }
-};
+//\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
+ * This class implements the (?@<>) syntax that matches a balanced parenthesis.\r
+ * Not in perl 5.\r
+ */\r
+class Group extends Pattern\r
+{\r
+ char op, cl;\r
+\r
+ Group(char opi, char cli)\r
+ {\r
+ op = opi;\r
+ cl = cli;\r
+ }\r
+\r
+ public int matchInternal(int pos, Pthings pt)\r
+ {\r
+ int i, count = 1;\r
+ if (pos < pt.src.length())\r
+ {\r
+ if (!Masked(pos, pt) && pt.src.charAt(pos) != op)\r
+ {\r
+ return -1;\r
+ }\r
+ }\r
+ for (i = pos + 1; i < pt.src.length(); i++)\r
+ {\r
+ char c = pt.src.charAt(i);\r
+ boolean b = !Masked(i, pt);\r
+ if (b && c == ESC)\r
+ {\r
+ i++;\r
+ }\r
+ else\r
+ {\r
+ if (b && c == cl)\r
+ {\r
+ count--;\r
+ }\r
+ if (count == 0)\r
+ {\r
+ return nextMatch(i + 1, pt);\r
+ }\r
+ if (b && c == op)\r
+ {\r
+ count++;\r
+ }\r
+ }\r
+ }\r
+ return -1;\r
+ }\r
+\r
+ public String toString()\r
+ {\r
+ return "(?@" + op + cl + ")" + nextString();\r
+ }\r
+\r
+ public patInt minChars()\r
+ {\r
+ return new patInt(2);\r
+ }\r
+\r
+ Pattern clone1(Hashtable h)\r
+ {\r
+ return new Group(op, cl);\r
+ }\r
+};\r