2d6a04dac089bc6cc1d961d0ecac255e3f94ef8a
[jalviewjs.git] / unused / com / stevesoft / pat / End.java
1 //\r
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
5 // the details.\r
6 //    -- Happy Computing!\r
7 //\r
8 package com.stevesoft.pat;\r
9 \r
10 import java.util.*;\r
11 \r
12 //class AddToEnd extends RegSyntax {};\r
13 \r
14 /**\r
15  * Compiles the '$' or the '\Z' Pattern. It is an error to have further Pattern\r
16  * elements after '\Z'. It is the end of the String.\r
17  */\r
18 class End extends Pattern\r
19 {\r
20   boolean retIsEnd;\r
21 \r
22   End(boolean b)\r
23   {\r
24     retIsEnd = b;\r
25   }\r
26 \r
27   public int matchInternal(int pos, Pthings pt)\r
28   {\r
29     if (retIsEnd && pt.mFlag && pos < pt.src.length())\r
30     {\r
31       if (pt.src.charAt(pos) == '\n')\r
32       {\r
33         return nextMatch(pos, pt);\r
34       }\r
35     }\r
36     if (pt.src.length() == pos)\r
37     {\r
38       return nextMatch(pos, pt);\r
39     }\r
40     else if (pos < pt.src.length())\r
41     {\r
42       // Access the next character...\r
43       // this is crucial to making\r
44       // RegexReader work.\r
45       pt.src.charAt(pos);\r
46     }\r
47     return -1;\r
48   }\r
49 \r
50   public String toString()\r
51   {\r
52     if (retIsEnd)\r
53     {\r
54       return "$";\r
55     }\r
56     else\r
57     {\r
58       return "\\Z";\r
59     }\r
60   }\r
61 \r
62   public patInt maxChars()\r
63   {\r
64     return new patInt(1);\r
65   }\r
66 \r
67   public Pattern clone1(Hashtable h)\r
68   {\r
69     return new End(retIsEnd);\r
70   }\r
71 };\r