JAL-1807 Bob's JalviewJS prototype first commit
[jalviewjs.git] / bin / com / stevesoft / pat / Group.js
1 Clazz.declarePackage ("com.stevesoft.pat");\r
2 Clazz.load (["com.stevesoft.pat.Pattern"], "com.stevesoft.pat.Group", ["com.stevesoft.pat.patInt"], function () {\r
3 c$ = Clazz.decorateAsClass (function () {\r
4 this.op = '\0';\r
5 this.cl = '\0';\r
6 Clazz.instantialize (this, arguments);\r
7 }, com.stevesoft.pat, "Group", com.stevesoft.pat.Pattern);\r
8 Clazz.makeConstructor (c$, \r
9 function (opi, cli) {\r
10 Clazz.superConstructor (this, com.stevesoft.pat.Group, []);\r
11 this.op = opi;\r
12 this.cl = cli;\r
13 }, "~S,~S");\r
14 Clazz.overrideMethod (c$, "matchInternal", \r
15 function (pos, pt) {\r
16 var i;\r
17 var count = 1;\r
18 if (pos < pt.src.length ()) {\r
19 if (!this.Masked (pos, pt) && pt.src.charAt (pos) != this.op) {\r
20 return -1;\r
21 }}for (i = pos + 1; i < pt.src.length (); i++) {\r
22 var c = pt.src.charAt (i);\r
23 var b = !this.Masked (i, pt);\r
24 if (b && c == '\\') {\r
25 i++;\r
26 } else {\r
27 if (b && c == this.cl) {\r
28 count--;\r
29 }if (count == 0) {\r
30 return this.nextMatch (i + 1, pt);\r
31 }if (b && c == this.op) {\r
32 count++;\r
33 }}}\r
34 return -1;\r
35 }, "~N,com.stevesoft.pat.Pthings");\r
36 Clazz.overrideMethod (c$, "toString", \r
37 function () {\r
38 return "(?@" + this.op + this.cl + ")" + this.nextString ();\r
39 });\r
40 Clazz.overrideMethod (c$, "minChars", \r
41 function () {\r
42 return  new com.stevesoft.pat.patInt (2);\r
43 });\r
44 Clazz.overrideMethod (c$, "clone1", \r
45 function (h) {\r
46 return  new com.stevesoft.pat.Group (this.op, this.cl);\r
47 }, "java.util.Hashtable");\r
48 });\r