needed for applet search
[jalview.git] / src / 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 import java.util.Hashtable;\r
10 \r
11 //class AddToEnd extends RegSyntax {};\r
12 \r
13 /** Compiles the '$' or the '\Z' Pattern.  It is\r
14  an error to have further Pattern elements after\r
15  '\Z'.  It is the end of the String. */\r
16 class End extends Pattern {\r
17     boolean retIsEnd;\r
18     End(boolean b) { retIsEnd = b; }\r
19     public int matchInternal(int pos,Pthings pt) {\r
20         if(retIsEnd && pt.mFlag && pos < pt.src.length()) {\r
21             if(pt.src.charAt(pos)=='\n') {\r
22                 return nextMatch(pos,pt);\r
23             }\r
24         }\r
25         if(pt.src.length() == pos)\r
26             return nextMatch(pos,pt);\r
27         else if(pos<pt.src.length())\r
28             // Access the next character...\r
29             // this is crucial to making \r
30             // RegexReader work.\r
31             pt.src.charAt(pos);\r
32         return -1;\r
33     }\r
34     public String toString() {\r
35         if(retIsEnd)\r
36             return "$";\r
37         else\r
38             return "\\Z";\r
39     }\r
40     public patInt maxChars() { return new patInt(1); }\r
41     public Pattern clone1(Hashtable h) { return new End(retIsEnd); }\r
42 };\r