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