Merge branch 'master' of https://source.jalview.org/git/jalviewjs.git
[jalviewjs.git] / site / j2s / com / stevesoft / pat / parsePerl.js
index 005236e..d34fbd4 100644 (file)
-Clazz.declarePackage ("com.stevesoft.pat");\r
-Clazz.load (null, "com.stevesoft.pat.parsePerl", ["com.stevesoft.pat.CaseMgr", "$.Prop", "$.RegSyntaxError", "$.Regex", "$.ReplaceRule", "$.StringRule", "java.lang.StringBuffer"], function () {\r
-c$ = Clazz.declareType (com.stevesoft.pat, "parsePerl");\r
-c$.close = Clazz.defineMethod (c$, "close", \r
-function (c) {\r
-if (c == '<') {\r
-return '>';\r
-}if (c == '[') {\r
-return ']';\r
-}if (c == '(') {\r
-return ')';\r
-}if (c == '{') {\r
-return '}';\r
-}return c;\r
-}, "~S");\r
-c$.codify = Clazz.defineMethod (c$, "codify", \r
-function (s, keepbs) {\r
-return com.stevesoft.pat.parsePerl.codifyRange (s, 0, s.length, keepbs);\r
-}, "~S,~B");\r
-c$.codifyRange = Clazz.defineMethod (c$, "codifyRange", \r
-function (s, i0, iN, keepbs) {\r
-var sb =  new StringBuffer ();\r
-var ucmode = false;\r
-var lcmode = false;\r
-var litmode = false;\r
-var uc1 = false;\r
-var lc1 = false;\r
-var modified = false;\r
-for (var i = i0; i < iN; i++) {\r
-var c = s.charAt (i);\r
-var mf = true;\r
-var app = true;\r
-if (c == '\\') {\r
-app = false;\r
-i++;\r
-if (i < s.length) {\r
-var c2 = s.charAt (i);\r
-switch (c2) {\r
-case 'Q':\r
-litmode = true;\r
-break;\r
-case 'U':\r
-ucmode = true;\r
-break;\r
-case 'L':\r
-lcmode = true;\r
-break;\r
-case 'u':\r
-uc1 = true;\r
-break;\r
-case 'l':\r
-lc1 = true;\r
-break;\r
-case 'E':\r
-uc1 = lc1 = ucmode = lcmode = litmode = false;\r
-break;\r
-default:\r
-if (keepbs) {\r
-sb.append ('\\');\r
-}c = c2;\r
-if (keepbs) {\r
-mf = false;\r
-}app = true;\r
-break;\r
-}\r
-modified = new Boolean (modified | mf).valueOf ();\r
-}}if (app) {\r
-if (lc1) {\r
-c = com.stevesoft.pat.parsePerl.lc (c);\r
-lc1 = false;\r
-} else if (uc1) {\r
-c = com.stevesoft.pat.parsePerl.uc (c);\r
-uc1 = false;\r
-} else if (ucmode) {\r
-c = com.stevesoft.pat.parsePerl.uc (c);\r
-} else if (lcmode) {\r
-c = com.stevesoft.pat.parsePerl.lc (c);\r
-}if (litmode && com.stevesoft.pat.parsePerl.needbs (c)) {\r
-sb.append ('\\');\r
-}sb.append (c);\r
-}}\r
-return modified ? sb.toString () : s;\r
-}, "~S,~N,~N,~B");\r
-c$.uc = Clazz.defineMethod (c$, "uc", \r
-function (c) {\r
-return com.stevesoft.pat.CaseMgr.toUpperCaseC (c);\r
-}, "~S");\r
-c$.lc = Clazz.defineMethod (c$, "lc", \r
-function (c) {\r
-return com.stevesoft.pat.CaseMgr.toLowerCaseC (c);\r
-}, "~S");\r
-c$.needbs = Clazz.defineMethod (c$, "needbs", \r
-function (c) {\r
-if (c >= 'a' && c <= 'z') {\r
-return false;\r
-}if (c >= 'A' && c <= 'Z') {\r
-return false;\r
-}if (c >= '0' && c <= '9') {\r
-return false;\r
-}if (c == '_') {\r
-return false;\r
-}return true;\r
-}, "~S");\r
-c$.parse = Clazz.defineMethod (c$, "parse", \r
-function (s) {\r
-var igncase = false;\r
-var optim = false;\r
-var gFlag = false;\r
-var sFlag = false;\r
-var mFlag = false;\r
-var xFlag = false;\r
-var s1 =  new StringBuffer ();\r
-var s2 =  new StringBuffer ();\r
-var i = 0;\r
-var count = 0;\r
-var mode;\r
-var delim = '/';\r
-var cdelim = '/';\r
-if (s.length >= 3 && s.charAt (0) == 's') {\r
-mode = 's';\r
-delim = s.charAt (1);\r
-cdelim = com.stevesoft.pat.parsePerl.close (delim);\r
-i = 2;\r
-} else if (s.length >= 2 && s.charAt (0) == 'm') {\r
-mode = 'm';\r
-delim = s.charAt (1);\r
-cdelim = com.stevesoft.pat.parsePerl.close (delim);\r
-i = 2;\r
-} else if (s.length >= 1 && s.charAt (0) == '/') {\r
-mode = 'm';\r
-i = 1;\r
-} else {\r
-try {\r
-com.stevesoft.pat.RegSyntaxError.endItAll ("Regex.perlCode should be of the form s/// or m// or //");\r
-} catch (rs) {\r
-if (Clazz.exceptionOf (rs, com.stevesoft.pat.RegSyntax)) {\r
-} else {\r
-throw rs;\r
-}\r
-}\r
-return null;\r
-}for (; i < s.length; i++) {\r
-if (s.charAt (i) == '\\') {\r
-s1.append ('\\');\r
-i++;\r
-} else if (s.charAt (i) == cdelim && count == 0) {\r
-i++;\r
-break;\r
-} else if (s.charAt (i) == delim && cdelim != delim) {\r
-count++;\r
-} else if (s.charAt (i) == cdelim && cdelim != delim) {\r
-count--;\r
-}s1.append (s.charAt (i));\r
-}\r
-if (mode == 's' && cdelim != delim) {\r
-while (i < s.length && com.stevesoft.pat.Prop.isWhite (s.charAt (i))) {\r
-i++;\r
-}\r
-if (i >= s.length) {\r
-try {\r
-com.stevesoft.pat.RegSyntaxError.endItAll ("" + mode + delim + " needs " + cdelim);\r
-} catch (rs) {\r
-if (Clazz.exceptionOf (rs, com.stevesoft.pat.RegSyntax)) {\r
-} else {\r
-throw rs;\r
-}\r
-}\r
-return null;\r
-}cdelim = com.stevesoft.pat.parsePerl.close (delim = s.charAt (i));\r
-i++;\r
-}count = 0;\r
-if (mode == 's') {\r
-for (; i < s.length; i++) {\r
-if (s.charAt (i) == '\\') {\r
-s2.append ('\\');\r
-i++;\r
-} else if (s.charAt (i) == cdelim && count == 0) {\r
-i++;\r
-break;\r
-} else if (s.charAt (i) == delim && cdelim != delim) {\r
-count++;\r
-} else if (s.charAt (i) == cdelim && cdelim != delim) {\r
-count--;\r
-}s2.append (s.charAt (i));\r
-}\r
-}for (; i < s.length; i++) {\r
-var c = s.charAt (i);\r
-switch (c) {\r
-case 'x':\r
-xFlag = true;\r
-break;\r
-case 'i':\r
-igncase = true;\r
-break;\r
-case 'o':\r
-optim = true;\r
-break;\r
-case 's':\r
-sFlag = true;\r
-break;\r
-case 'm':\r
-mFlag = true;\r
-break;\r
-case 'g':\r
-gFlag = true;\r
-break;\r
-default:\r
-try {\r
-com.stevesoft.pat.RegSyntaxError.endItAll ("Illegal flag to pattern: " + c);\r
-} catch (rs) {\r
-if (Clazz.exceptionOf (rs, com.stevesoft.pat.RegSyntax)) {\r
-} else {\r
-throw rs;\r
-}\r
-}\r
-return null;\r
-}\r
-}\r
-var r =  new com.stevesoft.pat.Regex (null, "");\r
-try {\r
-var pat = s1.toString ();\r
-var reprul = s2.toString ();\r
-if (xFlag) {\r
-pat = com.stevesoft.pat.parsePerl.strip (pat);\r
-reprul = com.stevesoft.pat.parsePerl.strip (reprul);\r
-}r.compile (pat);\r
-r.ignoreCase = new Boolean (r.ignoreCase | igncase).valueOf ();\r
-r.gFlag = new Boolean (r.gFlag | gFlag).valueOf ();\r
-r.sFlag = new Boolean (r.sFlag | sFlag).valueOf ();\r
-r.mFlag = new Boolean (r.mFlag | mFlag).valueOf ();\r
-if (optim) {\r
-r.optimize ();\r
-}if (delim == '\'') {\r
-r.setReplaceRule ( new com.stevesoft.pat.StringRule (reprul));\r
-} else {\r
-r.setReplaceRule (com.stevesoft.pat.ReplaceRule.perlCode (reprul));\r
-}} catch (rs) {\r
-if (Clazz.exceptionOf (rs, com.stevesoft.pat.RegSyntax)) {\r
-r = null;\r
-} else {\r
-throw rs;\r
-}\r
-}\r
-return r;\r
-}, "~S");\r
-c$.strip = Clazz.defineMethod (c$, "strip", \r
-function (s) {\r
-var sb =  new StringBuffer ();\r
-for (var i = 0; i < s.length; i++) {\r
-var c = s.charAt (i);\r
-if (com.stevesoft.pat.Prop.isWhite (c)) {\r
-;} else if (c == '#') {\r
-i++;\r
-while (i < s.length) {\r
-if (s.charAt (i) == '\n') {\r
-break;\r
-}i++;\r
-}\r
-} else if (c == '\\') {\r
-sb.append (c);\r
-sb.append (s.charAt (++i));\r
-} else {\r
-sb.append (c);\r
-}}\r
-return sb.toString ();\r
-}, "~S");\r
-});\r
+Clazz.declarePackage ("com.stevesoft.pat");
+Clazz.load (null, "com.stevesoft.pat.parsePerl", ["com.stevesoft.pat.CaseMgr", "$.Prop", "$.RegSyntaxError", "$.Regex", "$.ReplaceRule", "$.StringRule", "java.lang.StringBuffer"], function () {
+c$ = Clazz.declareType (com.stevesoft.pat, "parsePerl");
+c$.close = Clazz.defineMethod (c$, "close", 
+function (c) {
+if (c == '<') {
+return '>';
+}if (c == '[') {
+return ']';
+}if (c == '(') {
+return ')';
+}if (c == '{') {
+return '}';
+}return c;
+}, "~S");
+c$.codify = Clazz.defineMethod (c$, "codify", 
+function (s, keepbs) {
+return com.stevesoft.pat.parsePerl.codifyRange (s, 0, s.length, keepbs);
+}, "~S,~B");
+c$.codifyRange = Clazz.defineMethod (c$, "codifyRange", 
+function (s, i0, iN, keepbs) {
+var sb =  new StringBuffer ();
+var ucmode = false;
+var lcmode = false;
+var litmode = false;
+var uc1 = false;
+var lc1 = false;
+var modified = false;
+for (var i = i0; i < iN; i++) {
+var c = s.charAt (i);
+var mf = true;
+var app = true;
+if (c == '\\') {
+app = false;
+i++;
+if (i < s.length) {
+var c2 = s.charAt (i);
+switch (c2) {
+case 'Q':
+litmode = true;
+break;
+case 'U':
+ucmode = true;
+break;
+case 'L':
+lcmode = true;
+break;
+case 'u':
+uc1 = true;
+break;
+case 'l':
+lc1 = true;
+break;
+case 'E':
+uc1 = lc1 = ucmode = lcmode = litmode = false;
+break;
+default:
+if (keepbs) {
+sb.append ('\\');
+}c = c2;
+if (keepbs) {
+mf = false;
+}app = true;
+break;
+}
+modified = new Boolean (modified | mf).valueOf ();
+}}if (app) {
+if (lc1) {
+c = com.stevesoft.pat.parsePerl.lc (c);
+lc1 = false;
+} else if (uc1) {
+c = com.stevesoft.pat.parsePerl.uc (c);
+uc1 = false;
+} else if (ucmode) {
+c = com.stevesoft.pat.parsePerl.uc (c);
+} else if (lcmode) {
+c = com.stevesoft.pat.parsePerl.lc (c);
+}if (litmode && com.stevesoft.pat.parsePerl.needbs (c)) {
+sb.append ('\\');
+}sb.append (c);
+}}
+return modified ? sb.toString () : s;
+}, "~S,~N,~N,~B");
+c$.uc = Clazz.defineMethod (c$, "uc", 
+function (c) {
+return com.stevesoft.pat.CaseMgr.toUpperCaseC (c);
+}, "~S");
+c$.lc = Clazz.defineMethod (c$, "lc", 
+function (c) {
+return com.stevesoft.pat.CaseMgr.toLowerCaseC (c);
+}, "~S");
+c$.needbs = Clazz.defineMethod (c$, "needbs", 
+function (c) {
+if (c >= 'a' && c <= 'z') {
+return false;
+}if (c >= 'A' && c <= 'Z') {
+return false;
+}if (c >= '0' && c <= '9') {
+return false;
+}if (c == '_') {
+return false;
+}return true;
+}, "~S");
+c$.parse = Clazz.defineMethod (c$, "parse", 
+function (s) {
+var igncase = false;
+var optim = false;
+var gFlag = false;
+var sFlag = false;
+var mFlag = false;
+var xFlag = false;
+var s1 =  new StringBuffer ();
+var s2 =  new StringBuffer ();
+var i = 0;
+var count = 0;
+var mode;
+var delim = '/';
+var cdelim = '/';
+if (s.length >= 3 && s.charAt (0) == 's') {
+mode = 's';
+delim = s.charAt (1);
+cdelim = com.stevesoft.pat.parsePerl.close (delim);
+i = 2;
+} else if (s.length >= 2 && s.charAt (0) == 'm') {
+mode = 'm';
+delim = s.charAt (1);
+cdelim = com.stevesoft.pat.parsePerl.close (delim);
+i = 2;
+} else if (s.length >= 1 && s.charAt (0) == '/') {
+mode = 'm';
+i = 1;
+} else {
+try {
+com.stevesoft.pat.RegSyntaxError.endItAll ("Regex.perlCode should be of the form s/// or m// or //");
+} catch (rs) {
+if (Clazz.exceptionOf (rs, com.stevesoft.pat.RegSyntax)) {
+} else {
+throw rs;
+}
+}
+return null;
+}for (; i < s.length; i++) {
+if (s.charAt (i) == '\\') {
+s1.append ('\\');
+i++;
+} else if (s.charAt (i) == cdelim && count == 0) {
+i++;
+break;
+} else if (s.charAt (i) == delim && cdelim != delim) {
+count++;
+} else if (s.charAt (i) == cdelim && cdelim != delim) {
+count--;
+}s1.append (s.charAt (i));
+}
+if (mode == 's' && cdelim != delim) {
+while (i < s.length && com.stevesoft.pat.Prop.isWhite (s.charAt (i))) {
+i++;
+}
+if (i >= s.length) {
+try {
+com.stevesoft.pat.RegSyntaxError.endItAll ("" + mode + delim + " needs " + cdelim);
+} catch (rs) {
+if (Clazz.exceptionOf (rs, com.stevesoft.pat.RegSyntax)) {
+} else {
+throw rs;
+}
+}
+return null;
+}cdelim = com.stevesoft.pat.parsePerl.close (delim = s.charAt (i));
+i++;
+}count = 0;
+if (mode == 's') {
+for (; i < s.length; i++) {
+if (s.charAt (i) == '\\') {
+s2.append ('\\');
+i++;
+} else if (s.charAt (i) == cdelim && count == 0) {
+i++;
+break;
+} else if (s.charAt (i) == delim && cdelim != delim) {
+count++;
+} else if (s.charAt (i) == cdelim && cdelim != delim) {
+count--;
+}s2.append (s.charAt (i));
+}
+}for (; i < s.length; i++) {
+var c = s.charAt (i);
+switch (c) {
+case 'x':
+xFlag = true;
+break;
+case 'i':
+igncase = true;
+break;
+case 'o':
+optim = true;
+break;
+case 's':
+sFlag = true;
+break;
+case 'm':
+mFlag = true;
+break;
+case 'g':
+gFlag = true;
+break;
+default:
+try {
+com.stevesoft.pat.RegSyntaxError.endItAll ("Illegal flag to pattern: " + c);
+} catch (rs) {
+if (Clazz.exceptionOf (rs, com.stevesoft.pat.RegSyntax)) {
+} else {
+throw rs;
+}
+}
+return null;
+}
+}
+var r =  new com.stevesoft.pat.Regex (null, "");
+try {
+var pat = s1.toString ();
+var reprul = s2.toString ();
+if (xFlag) {
+pat = com.stevesoft.pat.parsePerl.strip (pat);
+reprul = com.stevesoft.pat.parsePerl.strip (reprul);
+}r.compile (pat);
+r.ignoreCase = new Boolean (r.ignoreCase | igncase).valueOf ();
+r.gFlag = new Boolean (r.gFlag | gFlag).valueOf ();
+r.sFlag = new Boolean (r.sFlag | sFlag).valueOf ();
+r.mFlag = new Boolean (r.mFlag | mFlag).valueOf ();
+if (optim) {
+r.optimize ();
+}if (delim == '\'') {
+r.setReplaceRule ( new com.stevesoft.pat.StringRule (reprul));
+} else {
+r.setReplaceRule (com.stevesoft.pat.ReplaceRule.perlCode (reprul));
+}} catch (rs) {
+if (Clazz.exceptionOf (rs, com.stevesoft.pat.RegSyntax)) {
+r = null;
+} else {
+throw rs;
+}
+}
+return r;
+}, "~S");
+c$.strip = Clazz.defineMethod (c$, "strip", 
+function (s) {
+var sb =  new StringBuffer ();
+for (var i = 0; i < s.length; i++) {
+var c = s.charAt (i);
+if (com.stevesoft.pat.Prop.isWhite (c)) {
+;} else if (c == '#') {
+i++;
+while (i < s.length) {
+if (s.charAt (i) == '\n') {
+break;
+}i++;
+}
+} else if (c == '\\') {
+sb.append (c);
+sb.append (s.charAt (++i));
+} else {
+sb.append (c);
+}}
+return sb.toString ();
+}, "~S");
+});