X-Git-Url: http://source.jalview.org/gitweb/?p=jalviewjs.git;a=blobdiff_plain;f=site%2Fj2s%2Fcom%2Fstevesoft%2Fpat%2FRegOpt.js;h=54e0ed8618b67b822ceef03103fef3c44b6962e8;hp=ed7043238baa7962e83a648ca48510bccacbdb48;hb=b9b7a352eee79b7764c3b09c9d19663075061d8c;hpb=7301a2415adab88038b291fc54caeeb3a5a47a44 diff --git a/site/j2s/com/stevesoft/pat/RegOpt.js b/site/j2s/com/stevesoft/pat/RegOpt.js index ed70432..54e0ed8 100644 --- a/site/j2s/com/stevesoft/pat/RegOpt.js +++ b/site/j2s/com/stevesoft/pat/RegOpt.js @@ -1,254 +1,254 @@ -Clazz.declarePackage ("com.stevesoft.pat"); -Clazz.load (["com.stevesoft.pat.Pattern", "$.oneChar", "java.util.Hashtable", "$.Vector"], ["com.stevesoft.pat.Branch", "$.RegOpt", "$.FastChar"], ["com.stevesoft.pat.Any", "$.Bracket", "$.Custom", "$.FastBracket", "$.FastMulti", "$.Multi", "$.NullPattern", "$.Or", "$.Range", "$.UniValidator", "$.patInt", "java.lang.Character", "$.StringBuffer"], function () { -c$ = Clazz.declareType (com.stevesoft.pat, "FastChar", com.stevesoft.pat.oneChar); -Clazz.overrideMethod (c$, "matchInternal", -function (p, pt) { -return (p < pt.src.length () && pt.src.charAt (p) == this.c) ? this.nextMatch (p + 1, pt) : -1; -}, "~N,com.stevesoft.pat.Pthings"); -Clazz.overrideMethod (c$, "clone1", -function (h) { -return new com.stevesoft.pat.FastChar (this.c); -}, "java.util.Hashtable"); -c$ = Clazz.decorateAsClass (function () { -this.h = null; -this.keys = null; -Clazz.instantialize (this, arguments); -}, com.stevesoft.pat, "Branch", com.stevesoft.pat.Pattern); -Clazz.prepareFields (c$, function () { -this.h = new java.util.Hashtable (); -this.keys = new java.util.Vector (); -}); -Clazz.makeConstructor (c$, -function () { -Clazz.superConstructor (this, com.stevesoft.pat.Branch, []); -}); -Clazz.overrideMethod (c$, "clone1", -function (x) { -var b = new com.stevesoft.pat.Branch (); -b.keys = this.keys.clone (); -x.put (this, b); -x.put (b, b); -for (var i = 0; i < this.keys.size (); i++) { -var p = this.h.get (this.keys.elementAt (i)); -b.h.put (this.keys.elementAt (i), p.clone (x)); -} -return b; -}, "java.util.Hashtable"); -Clazz.defineMethod (c$, "reduce", -function (ignoreCase, dontMinQ) { -if (this.h.size () == 1) { -var e = this.h.keys (); -var c = e.nextElement (); -var oc; -if (ignoreCase || dontMinQ) { -oc = new com.stevesoft.pat.oneChar (c.charValue ()); -} else { -oc = new com.stevesoft.pat.FastChar (c.charValue ()); -}oc.next = this.h.get (c); -oc.add (this.next); -return oc; -} else if (this.h.size () == 0) { -return null; -}return this; -}, "~B,~B"); -Clazz.defineMethod (c$, "maxChars", -function () { -var e = this.h.keys (); -var count = new com.stevesoft.pat.patInt (0); -while (e.hasMoreElements ()) { -var key = e.nextElement (); -var pa = this.h.get (key); -var pi = pa.maxChars (); -pi.inc (); -count.maxeq (pi); -} -return count; -}); -Clazz.defineMethod (c$, "minChars", -function () { -var e = this.h.keys (); -var count = new com.stevesoft.pat.patInt (0); -while (e.hasMoreElements ()) { -var key = e.nextElement (); -var pa = this.h.get (key); -var pi = pa.minChars (); -pi.inc (); -count.mineq (pi); -} -return count; -}); -Clazz.defineMethod (c$, "addc", -function (o, ignoreCase, dontMinQ) { -var n = o.next; -if (n == null) { -n = new com.stevesoft.pat.NullPattern (); -} else { -n = com.stevesoft.pat.RegOpt.opt (n, ignoreCase, dontMinQ); -}n.setParent (this); -this.set ( new Character (o.c), n, ignoreCase, dontMinQ); -if (ignoreCase) { -if (o.c != o.altc) { -this.set ( new Character (o.altc), n, ignoreCase, dontMinQ); -}if (o.c != o.altc2 && o.altc != o.altc2) { -this.set ( new Character (o.altc2), n, ignoreCase, dontMinQ); -}}}, "com.stevesoft.pat.oneChar,~B,~B"); -Clazz.defineMethod (c$, "set", -function (c, n, igc, dontMinQ) { -var p = this.h.get (c); -this.next = null; -if (p == null) { -if (Clazz.instanceOf (n, com.stevesoft.pat.Or)) { -var np = new com.stevesoft.pat.NullPattern (); -np.add (n); -this.h.put (c, np); -} else { -this.h.put (c, n); -}this.keys.addElement (c); -} else if (Clazz.instanceOf (p, com.stevesoft.pat.Or)) { -(p).addOr (n); -} else if (Clazz.instanceOf (p, com.stevesoft.pat.oneChar) && Clazz.instanceOf (n, com.stevesoft.pat.oneChar) && (p).c != (n).c) { -var b = new com.stevesoft.pat.Branch (); -b.addc (p, igc, dontMinQ); -b.addc (n, igc, dontMinQ); -this.h.put (c, b); -b.setParent (this); -} else if (Clazz.instanceOf (p, com.stevesoft.pat.Branch) && Clazz.instanceOf (n, com.stevesoft.pat.oneChar)) { -(p).addc (n, igc, dontMinQ); -n.setParent (p); -} else { -var o = new com.stevesoft.pat.Or (); -o.setParent (this); -if (Clazz.instanceOf (p, com.stevesoft.pat.NullPattern) && p.parent == null && p.next != null) { -o.addOr (p.next); -} else { -o.addOr (p); -}o.addOr (n); -var optpat = com.stevesoft.pat.RegOpt.opt (o, igc, dontMinQ); -this.h.put (c, optpat); -optpat.setParent (this); -}}, "Character,com.stevesoft.pat.Pattern,~B,~B"); -Clazz.overrideMethod (c$, "toString", -function () { -var sb = new StringBuffer (); -sb.append ("(?:(?#branch)"); -for (var i = 0; i < this.keys.size (); i++) { -var c = this.keys.elementAt (i); -sb.append (c); -sb.append (this.h.get (c)); -if (i + 1 < this.keys.size ()) { -sb.append ("|"); -}} -sb.append (")"); -sb.append (this.nextString ()); -return sb.toString (); -}); -Clazz.defineMethod (c$, "matchInternal", -function (pos, pt) { -if (pos >= pt.src.length ()) { -return -1; -}var n = this.h.get ( new Character (pt.src.charAt (pos))); -if (n == null) { -return -1; -}if (pt.cbits != null && pt.cbits.get (pos)) { -return -1; -}return n.matchInternal (pos + 1, pt); -}, "~N,com.stevesoft.pat.Pthings"); -c$ = Clazz.declareType (com.stevesoft.pat, "RegOpt"); -c$.opt = Clazz.defineMethod (c$, "opt", -function (p, ignoreCase, dontMinQ) { -if (p == null) { -return p; -}if (Clazz.instanceOf (p, com.stevesoft.pat.Bracket)) { -var b = p; -p = com.stevesoft.pat.FastBracket.process (b, ignoreCase); -p.next = b.next; -p.parent = b.parent; -} else if (Clazz.instanceOf (p, com.stevesoft.pat.oneChar) && !ignoreCase && !dontMinQ) { -var o = p; -p = new com.stevesoft.pat.FastChar (o.c); -p.next = o.next; -p.parent = o.parent; -} else if (Clazz.instanceOf (p, com.stevesoft.pat.Or) && (p).leftForm ().equals ("(?:") && (p).v.size () == 1) { -var o = p; -p = o.v.elementAt (0); -p.setParent (null); -p = com.stevesoft.pat.RegOpt.opt (p, ignoreCase, dontMinQ); -p.add (o.next); -} else if (Clazz.instanceOf (p, com.stevesoft.pat.Or)) { -var o = p; -o.pv = null; -var v = o.v; -o.v = new java.util.Vector (); -var b = new com.stevesoft.pat.Branch (); -b.parent = o.parent; -for (var i = 0; i < v.size (); i++) { -var pp = v.elementAt (i); -if (Clazz.instanceOf (pp, com.stevesoft.pat.oneChar) && (b.h.size () >= 1 || (i + 1 < v.size () && Clazz.instanceOf (v.elementAt (i + 1), com.stevesoft.pat.oneChar)))) { -b.addc (pp, ignoreCase, dontMinQ); -} else { -if (b.keys.size () > 0) { -var p2 = b.reduce (ignoreCase, dontMinQ); -if (p2 != null) { -o.addOr (p2); -b = new com.stevesoft.pat.Branch (); -b.parent = o.parent; -}}o.addOr (com.stevesoft.pat.RegOpt.opt (pp, ignoreCase, dontMinQ)); -}} -if (b.keys.size () > 0) { -var p2 = b.reduce (ignoreCase, dontMinQ); -if (p2 != null) { -o.addOr (p2); -}}if (o.v.size () == 1 && o.leftForm ().equals ("(?:")) { -p = o.v.elementAt (0); -p.setParent (null); -p = com.stevesoft.pat.RegOpt.opt (p, ignoreCase, dontMinQ); -p.add (o.next); -}} else if (Clazz.instanceOf (p, com.stevesoft.pat.FastMulti)) { -var ps = p; -ps.sub = com.stevesoft.pat.RegOpt.opt (ps.sub, ignoreCase, dontMinQ); -} else if (Clazz.instanceOf (p, com.stevesoft.pat.Multi) && com.stevesoft.pat.RegOpt.safe4fm ((p).sub)) { -var m = p; -var fm = null; -try { -fm = new com.stevesoft.pat.FastMulti (m.a, m.b, com.stevesoft.pat.RegOpt.opt (m.sub, ignoreCase, dontMinQ)); -} catch (rs) { -if (Clazz.exceptionOf (rs, com.stevesoft.pat.RegSyntax)) { -} else { -throw rs; -} -} -fm.parent = m.parent; -fm.matchFewest = m.matchFewest; -fm.next = m.next; -p = fm; -}if (p.next != null) { -p.next = com.stevesoft.pat.RegOpt.opt (p.next, ignoreCase, dontMinQ); -}return p; -}, "com.stevesoft.pat.Pattern,~B,~B"); -c$.safe4fm = Clazz.defineMethod (c$, "safe4fm", -function (x) { -while (x != null) { -if (Clazz.instanceOf (x, com.stevesoft.pat.Bracket)) { -;} else if (Clazz.instanceOf (x, com.stevesoft.pat.Range)) { -;} else if (Clazz.instanceOf (x, com.stevesoft.pat.oneChar)) { -;} else if (Clazz.instanceOf (x, com.stevesoft.pat.Any)) { -;} else if (Clazz.instanceOf (x, com.stevesoft.pat.Custom) && Clazz.instanceOf ((x).v, com.stevesoft.pat.UniValidator)) { -;} else if (Clazz.instanceOf (x, com.stevesoft.pat.Or)) { -var o = x; -if (!o.leftForm ().equals ("(?:")) { -return false; -}var lo = o.countMinChars (); -var hi = o.countMaxChars (); -if (!lo.equals (hi)) { -return false; -}for (var i = 0; i < o.v.size (); i++) { -if (!com.stevesoft.pat.RegOpt.safe4fm (o.v.elementAt (i))) { -return false; -}} -} else { -return false; -}x = x.next; -} -return true; -}, "com.stevesoft.pat.Pattern"); -}); +Clazz.declarePackage ("com.stevesoft.pat"); +Clazz.load (["com.stevesoft.pat.Pattern", "$.oneChar", "java.util.Hashtable", "$.Vector"], ["com.stevesoft.pat.Branch", "$.RegOpt", "$.FastChar"], ["com.stevesoft.pat.Any", "$.Bracket", "$.Custom", "$.FastBracket", "$.FastMulti", "$.Multi", "$.NullPattern", "$.Or", "$.Range", "$.UniValidator", "$.patInt", "java.lang.Character", "$.StringBuffer"], function () { +c$ = Clazz.declareType (com.stevesoft.pat, "FastChar", com.stevesoft.pat.oneChar); +Clazz.overrideMethod (c$, "matchInternal", +function (p, pt) { +return (p < pt.src.length () && pt.src.charAt (p) == this.c) ? this.nextMatch (p + 1, pt) : -1; +}, "~N,com.stevesoft.pat.Pthings"); +Clazz.overrideMethod (c$, "clone1", +function (h) { +return new com.stevesoft.pat.FastChar (this.c); +}, "java.util.Hashtable"); +c$ = Clazz.decorateAsClass (function () { +this.h = null; +this.keys = null; +Clazz.instantialize (this, arguments); +}, com.stevesoft.pat, "Branch", com.stevesoft.pat.Pattern); +Clazz.prepareFields (c$, function () { +this.h = new java.util.Hashtable (); +this.keys = new java.util.Vector (); +}); +Clazz.makeConstructor (c$, +function () { +Clazz.superConstructor (this, com.stevesoft.pat.Branch, []); +}); +Clazz.overrideMethod (c$, "clone1", +function (x) { +var b = new com.stevesoft.pat.Branch (); +b.keys = this.keys.clone (); +x.put (this, b); +x.put (b, b); +for (var i = 0; i < this.keys.size (); i++) { +var p = this.h.get (this.keys.elementAt (i)); +b.h.put (this.keys.elementAt (i), p.clone (x)); +} +return b; +}, "java.util.Hashtable"); +Clazz.defineMethod (c$, "reduce", +function (ignoreCase, dontMinQ) { +if (this.h.size () == 1) { +var e = this.h.keys (); +var c = e.nextElement (); +var oc; +if (ignoreCase || dontMinQ) { +oc = new com.stevesoft.pat.oneChar (c.charValue ()); +} else { +oc = new com.stevesoft.pat.FastChar (c.charValue ()); +}oc.next = this.h.get (c); +oc.add (this.next); +return oc; +} else if (this.h.size () == 0) { +return null; +}return this; +}, "~B,~B"); +Clazz.defineMethod (c$, "maxChars", +function () { +var e = this.h.keys (); +var count = new com.stevesoft.pat.patInt (0); +while (e.hasMoreElements ()) { +var key = e.nextElement (); +var pa = this.h.get (key); +var pi = pa.maxChars (); +pi.inc (); +count.maxeq (pi); +} +return count; +}); +Clazz.defineMethod (c$, "minChars", +function () { +var e = this.h.keys (); +var count = new com.stevesoft.pat.patInt (0); +while (e.hasMoreElements ()) { +var key = e.nextElement (); +var pa = this.h.get (key); +var pi = pa.minChars (); +pi.inc (); +count.mineq (pi); +} +return count; +}); +Clazz.defineMethod (c$, "addc", +function (o, ignoreCase, dontMinQ) { +var n = o.next; +if (n == null) { +n = new com.stevesoft.pat.NullPattern (); +} else { +n = com.stevesoft.pat.RegOpt.opt (n, ignoreCase, dontMinQ); +}n.setParent (this); +this.set ( new Character (o.c), n, ignoreCase, dontMinQ); +if (ignoreCase) { +if (o.c != o.altc) { +this.set ( new Character (o.altc), n, ignoreCase, dontMinQ); +}if (o.c != o.altc2 && o.altc != o.altc2) { +this.set ( new Character (o.altc2), n, ignoreCase, dontMinQ); +}}}, "com.stevesoft.pat.oneChar,~B,~B"); +Clazz.defineMethod (c$, "set", +function (c, n, igc, dontMinQ) { +var p = this.h.get (c); +this.next = null; +if (p == null) { +if (Clazz.instanceOf (n, com.stevesoft.pat.Or)) { +var np = new com.stevesoft.pat.NullPattern (); +np.add (n); +this.h.put (c, np); +} else { +this.h.put (c, n); +}this.keys.addElement (c); +} else if (Clazz.instanceOf (p, com.stevesoft.pat.Or)) { +(p).addOr (n); +} else if (Clazz.instanceOf (p, com.stevesoft.pat.oneChar) && Clazz.instanceOf (n, com.stevesoft.pat.oneChar) && (p).c != (n).c) { +var b = new com.stevesoft.pat.Branch (); +b.addc (p, igc, dontMinQ); +b.addc (n, igc, dontMinQ); +this.h.put (c, b); +b.setParent (this); +} else if (Clazz.instanceOf (p, com.stevesoft.pat.Branch) && Clazz.instanceOf (n, com.stevesoft.pat.oneChar)) { +(p).addc (n, igc, dontMinQ); +n.setParent (p); +} else { +var o = new com.stevesoft.pat.Or (); +o.setParent (this); +if (Clazz.instanceOf (p, com.stevesoft.pat.NullPattern) && p.parent == null && p.next != null) { +o.addOr (p.next); +} else { +o.addOr (p); +}o.addOr (n); +var optpat = com.stevesoft.pat.RegOpt.opt (o, igc, dontMinQ); +this.h.put (c, optpat); +optpat.setParent (this); +}}, "Character,com.stevesoft.pat.Pattern,~B,~B"); +Clazz.overrideMethod (c$, "toString", +function () { +var sb = new StringBuffer (); +sb.append ("(?:(?#branch)"); +for (var i = 0; i < this.keys.size (); i++) { +var c = this.keys.elementAt (i); +sb.append (c); +sb.append (this.h.get (c)); +if (i + 1 < this.keys.size ()) { +sb.append ("|"); +}} +sb.append (")"); +sb.append (this.nextString ()); +return sb.toString (); +}); +Clazz.defineMethod (c$, "matchInternal", +function (pos, pt) { +if (pos >= pt.src.length ()) { +return -1; +}var n = this.h.get ( new Character (pt.src.charAt (pos))); +if (n == null) { +return -1; +}if (pt.cbits != null && pt.cbits.get (pos)) { +return -1; +}return n.matchInternal (pos + 1, pt); +}, "~N,com.stevesoft.pat.Pthings"); +c$ = Clazz.declareType (com.stevesoft.pat, "RegOpt"); +c$.opt = Clazz.defineMethod (c$, "opt", +function (p, ignoreCase, dontMinQ) { +if (p == null) { +return p; +}if (Clazz.instanceOf (p, com.stevesoft.pat.Bracket)) { +var b = p; +p = com.stevesoft.pat.FastBracket.process (b, ignoreCase); +p.next = b.next; +p.parent = b.parent; +} else if (Clazz.instanceOf (p, com.stevesoft.pat.oneChar) && !ignoreCase && !dontMinQ) { +var o = p; +p = new com.stevesoft.pat.FastChar (o.c); +p.next = o.next; +p.parent = o.parent; +} else if (Clazz.instanceOf (p, com.stevesoft.pat.Or) && (p).leftForm ().equals ("(?:") && (p).v.size () == 1) { +var o = p; +p = o.v.elementAt (0); +p.setParent (null); +p = com.stevesoft.pat.RegOpt.opt (p, ignoreCase, dontMinQ); +p.add (o.next); +} else if (Clazz.instanceOf (p, com.stevesoft.pat.Or)) { +var o = p; +o.pv = null; +var v = o.v; +o.v = new java.util.Vector (); +var b = new com.stevesoft.pat.Branch (); +b.parent = o.parent; +for (var i = 0; i < v.size (); i++) { +var pp = v.elementAt (i); +if (Clazz.instanceOf (pp, com.stevesoft.pat.oneChar) && (b.h.size () >= 1 || (i + 1 < v.size () && Clazz.instanceOf (v.elementAt (i + 1), com.stevesoft.pat.oneChar)))) { +b.addc (pp, ignoreCase, dontMinQ); +} else { +if (b.keys.size () > 0) { +var p2 = b.reduce (ignoreCase, dontMinQ); +if (p2 != null) { +o.addOr (p2); +b = new com.stevesoft.pat.Branch (); +b.parent = o.parent; +}}o.addOr (com.stevesoft.pat.RegOpt.opt (pp, ignoreCase, dontMinQ)); +}} +if (b.keys.size () > 0) { +var p2 = b.reduce (ignoreCase, dontMinQ); +if (p2 != null) { +o.addOr (p2); +}}if (o.v.size () == 1 && o.leftForm ().equals ("(?:")) { +p = o.v.elementAt (0); +p.setParent (null); +p = com.stevesoft.pat.RegOpt.opt (p, ignoreCase, dontMinQ); +p.add (o.next); +}} else if (Clazz.instanceOf (p, com.stevesoft.pat.FastMulti)) { +var ps = p; +ps.sub = com.stevesoft.pat.RegOpt.opt (ps.sub, ignoreCase, dontMinQ); +} else if (Clazz.instanceOf (p, com.stevesoft.pat.Multi) && com.stevesoft.pat.RegOpt.safe4fm ((p).sub)) { +var m = p; +var fm = null; +try { +fm = new com.stevesoft.pat.FastMulti (m.a, m.b, com.stevesoft.pat.RegOpt.opt (m.sub, ignoreCase, dontMinQ)); +} catch (rs) { +if (Clazz.exceptionOf (rs, com.stevesoft.pat.RegSyntax)) { +} else { +throw rs; +} +} +fm.parent = m.parent; +fm.matchFewest = m.matchFewest; +fm.next = m.next; +p = fm; +}if (p.next != null) { +p.next = com.stevesoft.pat.RegOpt.opt (p.next, ignoreCase, dontMinQ); +}return p; +}, "com.stevesoft.pat.Pattern,~B,~B"); +c$.safe4fm = Clazz.defineMethod (c$, "safe4fm", +function (x) { +while (x != null) { +if (Clazz.instanceOf (x, com.stevesoft.pat.Bracket)) { +;} else if (Clazz.instanceOf (x, com.stevesoft.pat.Range)) { +;} else if (Clazz.instanceOf (x, com.stevesoft.pat.oneChar)) { +;} else if (Clazz.instanceOf (x, com.stevesoft.pat.Any)) { +;} else if (Clazz.instanceOf (x, com.stevesoft.pat.Custom) && Clazz.instanceOf ((x).v, com.stevesoft.pat.UniValidator)) { +;} else if (Clazz.instanceOf (x, com.stevesoft.pat.Or)) { +var o = x; +if (!o.leftForm ().equals ("(?:")) { +return false; +}var lo = o.countMinChars (); +var hi = o.countMaxChars (); +if (!lo.equals (hi)) { +return false; +}for (var i = 0; i < o.v.size (); i++) { +if (!com.stevesoft.pat.RegOpt.safe4fm (o.v.elementAt (i))) { +return false; +}} +} else { +return false; +}x = x.next; +} +return true; +}, "com.stevesoft.pat.Pattern"); +});