needed for applet search
[jalview.git] / src / com / stevesoft / pat / Backup.java
diff --git a/src/com/stevesoft/pat/Backup.java b/src/com/stevesoft/pat/Backup.java
new file mode 100755 (executable)
index 0000000..df480ea
--- /dev/null
@@ -0,0 +1,27 @@
+//\r
+// This software is now distributed according to\r
+// the Lesser Gnu Public License.  Please see\r
+// http://www.gnu.org/copyleft/lesser.txt for\r
+// the details.\r
+//    -- Happy Computing!\r
+//\r
+package com.stevesoft.pat;\r
+import java.util.Hashtable;\r
+\r
+/** Implements the (?<number) Pattern, where number is\r
+ an integer telling us how far to back up in the Pattern.\r
+ Not in perl 5. It also allows (?>number). */\r
+class Backup extends Pattern {\r
+    int bk;\r
+    Backup(int ii) { bk = ii; }\r
+    public String toString() {\r
+        return "(?" + (bk < 0 ? ">" + (-bk) : "<" + bk) + ")" + nextString();\r
+    }\r
+    public int matchInternal(int pos,Pthings pt) {\r
+        if(pos < bk) return -1;\r
+        return nextMatch(pos-bk,pt);\r
+    }\r
+    public patInt minChars() { return new patInt(-bk); }\r
+    public patInt maxChars() { return new patInt(-bk); }\r
+    public Pattern clone1(Hashtable h) { return new Backup(bk); }\r
+};\r