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 word boundary pattern element: \b. */
\r
16 public String toString()
\r
18 return "\\b" + nextString();
\r
21 boolean isAChar(char c)
\r
23 if (c >= 'a' && c <= 'z')
\r
27 if (c >= 'A' && c <= 'Z')
\r
31 if (c >= '0' && c <= '9')
\r
42 boolean matchLeft(int pos, Pthings pt)
\r
48 if (isAChar(pt.src.charAt(pos))
\r
49 && isAChar(pt.src.charAt(pos - 1)))
\r
56 boolean matchRight(int pos, Pthings pt)
\r
62 if (pos + 1 >= pt.src.length())
\r
66 if (isAChar(pt.src.charAt(pos))
\r
67 && isAChar(pt.src.charAt(pos + 1)))
\r
74 public int matchInternal(int pos, Pthings pt)
\r
76 if (matchRight(pos - 1, pt) || matchLeft(pos, pt))
\r
78 return nextMatch(pos, pt);
\r
83 public patInt maxChars()
\r
85 return new patInt(0);
\r
88 public Pattern clone1(Hashtable h)
\r
90 return new Boundary();
\r