2 // This software is now distributed according to
\r
3 // the Lesser Gnu Public License. Please see
\r
4 // http://www.gnu.org/copyleft/lesser.txt for
\r
6 // -- Happy Computing!
\r
8 package com.stevesoft.pat;
\r
12 /** This class implements the (?@<>) syntax that matches
\r
13 a balanced parenthesis. Not in perl 5. */
\r
18 Group(char opi, char cli)
\r
24 public int matchInternal(int pos, Pthings pt)
\r
27 if (pos < pt.src.length())
\r
29 if (!Masked(pos, pt) && pt.src.charAt(pos) != op)
\r
34 for (i = pos + 1; i < pt.src.length(); i++)
\r
36 char c = pt.src.charAt(i);
\r
37 boolean b = !Masked(i, pt);
\r
50 return nextMatch(i + 1, pt);
\r
61 public String toString()
\r
63 return "(?@" + op + cl + ")" + nextString();
\r
66 public patInt minChars()
\r
68 return new patInt(2);
\r
71 Pattern clone1(Hashtable h)
\r
73 return new Group(op, cl);
\r