JAL-1807 still testing
[jalviewjs.git] / bin / com / stevesoft / pat / parsePerl.js
index d34fbd4..005236e 100644 (file)
-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");
-});
+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