JAL-1807 still testing
[jalviewjs.git] / unused / com / stevesoft / pat / Backup.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 /**\r
13  * Implements the (?<number) Pattern, where number is an integer telling us\r
14  * how far to back up in the Pattern. Not in perl 5. It also allows\r
15  * (?>number).\r
16  */\r
17 class Backup extends Pattern\r
18 {\r
19   int bk;\r
20 \r
21   Backup(int ii)\r
22   {\r
23     bk = ii;\r
24   }\r
25 \r
26   public String toString()\r
27   {\r
28     return "(?" + (bk < 0 ? ">" + (-bk) : "<" + bk) + ")" + nextString();\r
29   }\r
30 \r
31   public int matchInternal(int pos, Pthings pt)\r
32   {\r
33     if (pos < bk)\r
34     {\r
35       return -1;\r
36     }\r
37     return nextMatch(pos - bk, pt);\r
38   }\r
39 \r
40   public patInt minChars()\r
41   {\r
42     return new patInt(-bk);\r
43   }\r
44 \r
45   public patInt maxChars()\r
46   {\r
47     return new patInt(-bk);\r
48   }\r
49 \r
50   public Pattern clone1(Hashtable h)\r
51   {\r
52     return new Backup(bk);\r
53   }\r
54 };\r