home *** CD-ROM | disk | FTP | other *** search
Text File | 2007-10-01 | 33.6 KB | 1,004 lines |
- class com.neodelight.std.RegExp
- {
- var old_split;
- var const = null;
- var source = null;
- var global = false;
- var ignoreCase = false;
- var multiline = false;
- var lastIndex = null;
- static var _xrStatic = null;
- var _xr = null;
- static var _xp = null;
- static var _xxa = null;
- static var _xxlp = null;
- var _xq = null;
- var _xqc = null;
- static var d = null;
- static var _xiStatic = null;
- var _xi = 0;
- static var _xxlm = null;
- static var _xxlc = null;
- static var _xxrc = null;
- static var lastMatch = null;
- static var leftContext = null;
- static var rightContext = null;
- static var _xa = new Array();
- static var lastParen = null;
- static var _xaStatic = new Array();
- static var $1 = null;
- static var $2 = null;
- static var $3 = null;
- static var $4 = null;
- static var $5 = null;
- static var $6 = null;
- static var $7 = null;
- static var $8 = null;
- static var $9 = null;
- static var _setString = com.neodelight.std.RegExp.setStringMethods();
- function RegExp()
- {
- if(arguments[0] != null)
- {
- this.const = "RegExp";
- this.compile.apply(this,arguments);
- }
- }
- function invStr(sVal)
- {
- var _loc5_ = sVal;
- var _loc4_ = _loc5_.length;
- var _loc1_ = undefined;
- var _loc3_ = undefined;
- var _loc6_ = "";
- var _loc2_ = 1;
- while(_loc2_ < 255)
- {
- _loc3_ = chr(_loc2_);
- _loc1_ = 0;
- while(_loc1_ <= _loc4_ && _loc5_.substring(1 + _loc1_++,1) != _loc3_)
- {
- }
- if(_loc1_ > _loc4_)
- {
- _loc6_ += _loc3_;
- }
- _loc2_ = _loc2_ + 1;
- }
- return _loc5_;
- }
- function compile()
- {
- this.source = arguments[0];
- var _loc7_ = undefined;
- var _loc20_ = undefined;
- if(arguments.length > 1)
- {
- var _loc17_ = (arguments[1] + "").toLowerCase();
- _loc7_ = 0;
- while(_loc7_ < _loc17_.length)
- {
- if(_loc17_.substring(_loc7_ + 1,1) == "g")
- {
- this.global = true;
- }
- if(_loc17_.substring(_loc7_ + 1,1) == "i")
- {
- this.ignoreCase = true;
- }
- if(_loc17_.substring(_loc7_ + 1,1) == "m")
- {
- this.multiline = true;
- }
- _loc7_ = _loc7_ + 1;
- }
- }
- if(arguments.length < 3)
- {
- _loc20_ = true;
- com.neodelight.std.RegExp._xrStatic = 1;
- _loc7_ = 0;
- }
- else
- {
- _loc20_ = false;
- this._xr = com.neodelight.std.RegExp._xrStatic++;
- _loc7_ = arguments[2];
- }
- this.lastIndex = 0;
- var _loc10_ = this.source;
- var _loc21_ = undefined;
- var _loc14_ = _loc10_.length;
- var _loc6_ = [];
- var _loc4_ = 0;
- var _loc5_ = undefined;
- var _loc9_ = false;
- var _loc16_ = undefined;
- var _loc15_ = undefined;
- var _loc18_ = false;
- var _loc19_ = undefined;
- _loc7_;
- for(; _loc7_ < _loc14_; _loc7_ = _loc7_ + 1)
- {
- var _loc3_ = _loc10_.substring(_loc7_ + 1,1);
- if(_loc3_ == "\\")
- {
- _loc7_ = _loc7_ + 1;
- _loc19_ = false;
- _loc3_ = _loc10_.substring(_loc7_ + 1,1);
- }
- else
- {
- _loc19_ = true;
- }
- var _loc12_ = _loc10_.substring(_loc7_ + 2,1);
- _loc6_[_loc4_] = new Object();
- _loc6_[_loc4_].t = 0;
- _loc6_[_loc4_].a = 0;
- _loc6_[_loc4_].b = 999;
- _loc6_[_loc4_].c = -10;
- if(_loc19_)
- {
- if(_loc3_ == "(")
- {
- _loc21_ = new com.neodelight.std.RegExp(_loc10_,!this.ignoreCase ? "g" : "gi",_loc7_ + 1);
- _loc7_ = com.neodelight.std.RegExp._xiStatic;
- _loc6_[_loc4_].t = 3;
- _loc3_ = _loc21_;
- _loc12_ = _loc10_.substring(_loc7_ + 2,1);
- }
- else
- {
- if(!_loc20_ && _loc3_ == ")")
- {
- break;
- }
- if(_loc3_ == "^")
- {
- if(_loc4_ == 0 || _loc6_[_loc4_ - 1].t == 7)
- {
- _loc6_[_loc4_].t = 9;
- _loc6_[_loc4_].a = 1;
- _loc6_[_loc4_].b = 1;
- _loc4_ = _loc4_ + 1;
- }
- continue;
- }
- if(_loc3_ == "$")
- {
- if(_loc20_)
- {
- _loc18_ = true;
- }
- continue;
- }
- if(_loc3_ == "[")
- {
- _loc7_ = _loc7_ + 1;
- if(_loc12_ == "^")
- {
- _loc6_[_loc4_].t = 2;
- _loc7_ = _loc7_ + 1;
- }
- else
- {
- _loc6_[_loc4_].t = 1;
- }
- _loc3_ = "";
- _loc9_ = false;
- while(_loc7_ < _loc14_ && (_loc5_ = _loc10_.substring(1 + _loc7_++,1)) != "]")
- {
- if(_loc9_)
- {
- if(_loc5_ == "\\")
- {
- }
- _loc15_ = _loc5_ != "\\" ? _loc5_ : (_loc5_ != "b" ? (_loc7_, _loc10_.substring(1 + _loc7_++,1)) : "\b");
- _loc16_ = ord(_loc3_.substring(_loc3_.length,1)) + 1;
- while(true)
- {
- _loc16_;
- if(_loc15_ < (_loc5_ = chr(_loc16_++)))
- {
- break;
- }
- _loc3_ += _loc5_;
- }
- _loc9_ = false;
- }
- else if(_loc5_ == "-" && _loc3_.length > 0)
- {
- _loc9_ = true;
- }
- else if(_loc5_ == "\\")
- {
- _loc7_;
- _loc5_ = _loc10_.substring(1 + _loc7_++,1);
- if(_loc5_ == "d")
- {
- _loc3_ += "0123456789";
- }
- else if(_loc5_ == "D")
- {
- _loc3_ += this.invStr("0123456789");
- }
- else if(_loc5_ == "s")
- {
- _loc3_ += " \f\n\r\t";
- }
- else if(_loc5_ == "S")
- {
- _loc3_ += this.invStr(" \f\n\r\t");
- }
- else if(_loc5_ == "w")
- {
- _loc3_ += "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
- }
- else if(_loc5_ == "W")
- {
- _loc3_ += this.invStr("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_");
- }
- else if(_loc5_ == "b")
- {
- _loc3_ += "\b";
- }
- else if(_loc5_ == "\\")
- {
- _loc3_ += _loc5_;
- }
- }
- else
- {
- _loc3_ += _loc5_;
- }
- }
- if(_loc9_)
- {
- _loc3_ += "-";
- }
- _loc7_ = _loc7_ - 1;
- _loc12_ = _loc10_.substring(_loc7_ + 2,1);
- }
- else
- {
- if(_loc3_ == "|")
- {
- if(_loc18_)
- {
- _loc6_[_loc4_].t = 10;
- _loc6_[_loc4_].a = 1;
- _loc6_[_loc4_].b = 1;
- _loc4_ = _loc4_ + 1;
- _loc6_[_loc4_] = new Object();
- _loc18_ = false;
- }
- _loc6_[_loc4_].t = 7;
- _loc6_[_loc4_].a = 1;
- _loc6_[_loc4_].b = 1;
- _loc4_ = _loc4_ + 1;
- continue;
- }
- if(_loc3_ == ".")
- {
- _loc6_[_loc4_].t = 2;
- _loc3_ = "\n";
- }
- else if(_loc3_ == "*" || _loc3_ == "?" || _loc3_ == "+")
- {
- continue;
- }
- }
- }
- }
- else if(_loc3_ >= "1" && _loc3_ <= "9")
- {
- _loc6_[_loc4_].t = 4;
- }
- else if(_loc3_ == "b")
- {
- _loc6_[_loc4_].t = 1;
- _loc3_ = "--wb--";
- }
- else if(_loc3_ == "B")
- {
- _loc6_[_loc4_].t = 2;
- _loc3_ = "--wb--";
- }
- else if(_loc3_ == "d")
- {
- _loc6_[_loc4_].t = 1;
- _loc3_ = "0123456789";
- }
- else if(_loc3_ == "D")
- {
- _loc6_[_loc4_].t = 2;
- _loc3_ = "0123456789";
- }
- else if(_loc3_ == "s")
- {
- _loc6_[_loc4_].t = 1;
- _loc3_ = " \f\n\r\t";
- }
- else if(_loc3_ == "S")
- {
- _loc6_[_loc4_].t = 2;
- _loc3_ = " \f\n\r\t";
- }
- else if(_loc3_ == "w")
- {
- _loc6_[_loc4_].t = 1;
- _loc3_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
- }
- else if(_loc3_ == "W")
- {
- _loc6_[_loc4_].t = 2;
- _loc3_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_";
- }
- if(_loc12_ == "*")
- {
- _loc6_[_loc4_].s = _loc3_;
- _loc4_ = _loc4_ + 1;
- _loc7_ = _loc7_ + 1;
- }
- else if(_loc12_ == "?")
- {
- _loc6_[_loc4_].s = _loc3_;
- _loc6_[_loc4_].b = 1;
- _loc4_ = _loc4_ + 1;
- _loc7_ = _loc7_ + 1;
- }
- else if(_loc12_ == "+")
- {
- _loc6_[_loc4_].s = _loc3_;
- _loc6_[_loc4_].a = 1;
- _loc4_ = _loc4_ + 1;
- _loc7_ = _loc7_ + 1;
- }
- else if(_loc12_ == "{")
- {
- var _loc13_ = false;
- var _loc8_ = 0;
- _loc9_ = "";
- _loc7_ = _loc7_ + 1;
- while(_loc7_ + 1 < _loc14_ && (_loc5_ = _loc10_.substring(2 + _loc7_++,1)) != "}")
- {
- if(!_loc13_ && _loc5_ == ",")
- {
- _loc13_ = true;
- _loc8_ = Number(_loc9_);
- _loc8_ = Math.floor(!isNaN(_loc8_) ? _loc8_ : 0);
- if(_loc8_ < 0)
- {
- _loc8_ = 0;
- }
- _loc9_ = "";
- }
- else
- {
- _loc9_ += _loc5_;
- }
- }
- var _loc11_ = Number(_loc9_);
- _loc11_ = Math.floor(!isNaN(_loc11_) ? _loc11_ : 0);
- if(_loc11_ < 1)
- {
- _loc11_ = 999;
- }
- if(_loc11_ < _loc8_)
- {
- _loc11_ = _loc8_;
- }
- _loc6_[_loc4_].s = _loc3_;
- _loc6_[_loc4_].b = _loc11_;
- _loc6_[_loc4_].a = !_loc13_ ? _loc11_ : _loc8_;
- _loc4_ = _loc4_ + 1;
- }
- else
- {
- _loc6_[_loc4_].s = _loc3_;
- _loc6_[_loc4_].a = 1;
- _loc6_[_loc4_].b = 1;
- _loc4_ = _loc4_ + 1;
- }
- }
- if(_loc20_ && _loc18_)
- {
- _loc6_[_loc4_] = new Object();
- _loc6_[_loc4_].t = 10;
- _loc6_[_loc4_].a = 1;
- _loc6_[_loc4_].b = 1;
- _loc4_ = _loc4_ + 1;
- }
- if(!_loc20_)
- {
- com.neodelight.std.RegExp._xiStatic = _loc7_;
- this.source = _loc10_.substring(arguments[2] + 1,_loc7_ - arguments[2]);
- }
- if(com.neodelight.std.RegExp.d)
- {
- _loc7_ = 0;
- while(_loc7_ < _loc4_)
- {
- trace("xr" + this._xr + " " + _loc6_[_loc7_].t + " : " + _loc6_[_loc7_].a + " : " + _loc6_[_loc7_].b + " : " + _loc6_[_loc7_].s);
- _loc7_ = _loc7_ + 1;
- }
- }
- this._xq = _loc6_;
- this._xqc = _loc4_;
- com.neodelight.std.RegExp._xp = 0;
- }
- function test()
- {
- if(com.neodelight.std.RegExp._xp++ == 0)
- {
- com.neodelight.std.RegExp._xxa = [];
- com.neodelight.std.RegExp._xxlp = 0;
- }
- var _loc10_ = arguments[0] + "";
- var _loc15_ = undefined;
- var _loc4_ = this._xq;
- var _loc17_ = this._xqc;
- var _loc14_ = undefined;
- var _loc7_ = undefined;
- var _loc8_ = undefined;
- var _loc9_ = undefined;
- var _loc11_ = undefined;
- var _loc13_ = undefined;
- var _loc18_ = undefined;
- var _loc12_ = _loc10_.length;
- var _loc5_ = !this.global ? 0 : this.lastIndex;
- var _loc21_ = _loc5_;
- var _loc19_ = _loc10_;
- if(this.ignoreCase)
- {
- _loc10_ = _loc10_.toLowerCase();
- }
- var _loc16_ = new Object();
- _loc16_.i = -1;
- var _loc3_ = -1;
- while(_loc3_ < _loc17_ - 1)
- {
- _loc3_ = _loc3_ + 1;
- if(com.neodelight.std.RegExp.d)
- {
- trace("New section started at i=" + _loc3_);
- }
- _loc5_ = _loc21_;
- _loc14_ = _loc3_;
- _loc4_[_loc14_].c = -10;
- var _loc20_ = false;
- while(_loc3_ > _loc14_ || _loc5_ < _loc12_ + 1)
- {
- if(_loc4_[_loc3_].t == 7)
- {
- break;
- }
- if(_loc4_[_loc3_].t == 9)
- {
- _loc3_ = _loc3_ + 1;
- if(_loc3_ == _loc14_ + 1)
- {
- _loc18_ = true;
- _loc14_ = _loc3_;
- }
- _loc4_[_loc14_].c = -10;
- }
- else
- {
- if(_loc16_.i >= 0 && _loc5_ >= _loc16_.i)
- {
- break;
- }
- if(_loc4_[_loc3_].c == -10)
- {
- if(com.neodelight.std.RegExp.d)
- {
- trace("Lookup #" + _loc3_ + " at index " + _loc5_ + " for \\\\\\\\\\\\\\\\\'" + _loc4_[_loc3_].s + "\\\\\\\\\\\\\\\\\' type " + _loc4_[_loc3_].t);
- }
- var _loc6_ = 0;
- _loc4_[_loc3_].i = _loc5_;
- if(_loc4_[_loc3_].t == 0)
- {
- _loc7_ = !this.ignoreCase ? _loc4_[_loc3_].s : _loc4_[_loc3_].s.toLowerCase();
- while(_loc6_ < _loc4_[_loc3_].b && _loc5_ < _loc12_)
- {
- if(_loc10_.substring(1 + _loc5_,1) != _loc7_)
- {
- break;
- }
- _loc6_ = _loc6_ + 1;
- _loc5_ = _loc5_ + 1;
- }
- }
- else if(_loc4_[_loc3_].t == 1)
- {
- if(_loc4_[_loc3_].s == "--wb--")
- {
- _loc4_[_loc3_].a = 1;
- if(_loc5_ > 0 && _loc5_ < _loc12_)
- {
- _loc9_ = _loc10_.substring(_loc5_,1);
- if(_loc9_ == " " || _loc9_ == "\\\\\\\\\\\\\\\\n")
- {
- _loc6_ = 1;
- }
- if(_loc6_ == 0)
- {
- _loc9_ = _loc10_.substring(1 + _loc5_,1);
- if(_loc9_ == " " || _loc9_ == "\\\\\\\\\\\\\\\\n")
- {
- _loc6_ = 1;
- }
- }
- }
- else
- {
- _loc6_ = 1;
- }
- }
- else
- {
- _loc7_ = !this.ignoreCase ? _loc4_[_loc3_].s : _loc4_[_loc3_].s.toLowerCase();
- _loc8_ = _loc7_.length;
- while(_loc6_ < _loc4_[_loc3_].b && _loc5_ < _loc12_)
- {
- _loc9_ = _loc10_.substring(1 + _loc5_,1);
- _loc11_ = 0;
- while(_loc11_ <= _loc8_ && _loc7_.substring(1 + _loc11_++,1) != _loc9_)
- {
- }
- if(_loc11_ > _loc8_)
- {
- break;
- }
- _loc6_ = _loc6_ + 1;
- _loc5_ = _loc5_ + 1;
- }
- }
- }
- else if(_loc4_[_loc3_].t == 2)
- {
- _loc7_ = !this.ignoreCase ? _loc4_[_loc3_].s : _loc4_[_loc3_].s.toLowerCase();
- _loc8_ = _loc7_.length;
- if(_loc4_[_loc3_].s == "--wb--")
- {
- _loc4_[_loc3_].a = 1;
- if(_loc5_ > 0 && _loc5_ < _loc12_)
- {
- _loc9_ = _loc10_.substring(_loc5_,1);
- _loc13_ = _loc10_.substring(1 + _loc5_,1);
- if(_loc9_ != " " && _loc9_ != "\\\\\\\\\\\\\\\\n" && _loc13_ != " " && _loc13_ != "\\\\\\\\\\\\\\\\n")
- {
- _loc6_ = 1;
- }
- }
- else
- {
- _loc6_ = 0;
- }
- }
- else
- {
- while(_loc6_ < _loc4_[_loc3_].b && _loc5_ < _loc12_)
- {
- _loc9_ = _loc10_.substring(1 + _loc5_,1);
- _loc11_ = 0;
- while(_loc11_ <= _loc8_ && _loc7_.substring(1 + _loc11_++,1) != _loc9_)
- {
- }
- if(_loc11_ <= _loc8_)
- {
- break;
- }
- _loc6_ = _loc6_ + 1;
- _loc5_ = _loc5_ + 1;
- }
- }
- }
- else if(_loc4_[_loc3_].t == 10)
- {
- _loc13_ = _loc10_.substring(1 + _loc5_,1);
- _loc6_ = !(this.multiline && (_loc13_ == "\\\\\\\\\\\\\\\\n" || _loc13_ == "\\\\\\\\\\\\\\\\r") || _loc5_ == _loc12_) ? 0 : 1;
- }
- else if(_loc4_[_loc3_].t == 3)
- {
- _loc15_ = _loc4_[_loc3_].s;
- _loc4_[_loc3_].ix = [];
- _loc4_[_loc3_].ix[_loc6_] = _loc5_;
- _loc15_.lastIndex = _loc5_;
- while(_loc6_ < _loc4_[_loc3_].b && _loc15_.test(_loc19_))
- {
- _loc8_ = com.neodelight.std.RegExp._xxlm.length;
- if(_loc8_ <= 0)
- {
- _loc6_ = _loc4_[_loc3_].a;
- _loc4_[_loc3_].ix[_loc6_ - 1] = _loc5_;
- break;
- }
- _loc5_ += _loc8_;
- _loc6_ = _loc6_ + 1;
- _loc4_[_loc3_].ix[_loc6_] = _loc5_;
- }
- if(_loc6_ == 0)
- {
- com.neodelight.std.RegExp._xxlm = "";
- }
- if(_loc15_._xr > com.neodelight.std.RegExp._xxlp)
- {
- com.neodelight.std.RegExp._xxlp = _loc15_._xr;
- }
- com.neodelight.std.RegExp._xxa[Number(_loc15_._xr)] = com.neodelight.std.RegExp._xxlm;
- }
- else if(_loc4_[_loc3_].t == 4)
- {
- if(com.neodelight.std.RegExp._xp >= (_loc7_ = Number(_loc4_[_loc3_].s)))
- {
- _loc7_ = com.neodelight.std.RegExp._xxa[_loc7_];
- _loc7_ = !this.ignoreCase ? _loc7_ : _loc7_.toLowerCase();
- _loc8_ = _loc7_.length;
- _loc4_[_loc3_].ix = [];
- _loc4_[_loc3_].ix[_loc6_] = _loc5_;
- if(_loc8_ > 0)
- {
- while(_loc6_ < _loc4_[_loc3_].b && _loc5_ < _loc12_)
- {
- if(_loc10_.substring(1 + _loc5_,_loc8_) != _loc7_)
- {
- break;
- }
- _loc6_ = _loc6_ + 1;
- _loc5_ += _loc8_;
- _loc4_[_loc3_].ix[_loc6_] = _loc5_;
- }
- }
- else
- {
- _loc6_ = 0;
- _loc4_[_loc3_].a = 0;
- }
- }
- else
- {
- _loc7_ = chr(_loc7_);
- _loc4_[_loc3_].ix = [];
- _loc4_[_loc3_].ix[_loc6_] = _loc5_;
- while(_loc6_ < _loc4_[_loc3_].b && _loc5_ < _loc12_)
- {
- if(_loc10_.substring(1 + _loc5_,1) != _loc7_)
- {
- break;
- }
- _loc6_ = _loc6_ + 1;
- _loc5_ = _loc5_ + 1;
- _loc4_[_loc3_].ix[_loc6_] = _loc5_;
- }
- }
- }
- _loc4_[_loc3_].c = _loc6_;
- if(com.neodelight.std.RegExp.d)
- {
- trace(" " + _loc6_ + " matches found");
- }
- }
- if(_loc4_[_loc3_].c < _loc4_[_loc3_].a)
- {
- if(com.neodelight.std.RegExp.d)
- {
- trace(" not enough matches");
- }
- if(_loc3_ > _loc14_)
- {
- _loc3_ = _loc3_ - 1;
- _loc4_[_loc3_].c--;
- if(_loc4_[_loc3_].c >= 0)
- {
- _loc5_ = !(_loc4_[_loc3_].t == 3 || _loc4_[_loc3_].t == 4) ? _loc4_[_loc3_].i + _loc4_[_loc3_].c : _loc4_[_loc3_].ix[_loc4_[_loc3_].c];
- }
- if(com.neodelight.std.RegExp.d)
- {
- trace("Retreat to #" + _loc3_ + " c=" + _loc4_[_loc3_].c + " index=" + _loc5_);
- }
- }
- else
- {
- if(com.neodelight.std.RegExp._xp > 1)
- {
- break;
- }
- if(_loc18_)
- {
- if(!this.multiline)
- {
- break;
- }
- while(_loc5_ <= _loc12_)
- {
- _loc5_;
- _loc13_ = _loc10_.substring(1 + _loc5_++,1);
- if(_loc13_ == "\\\\\\\\\\\\\\\\n" || _loc13_ == "\\\\\\\\\\\\\\\\r")
- {
- break;
- }
- }
- _loc4_[_loc3_].c = -10;
- }
- else
- {
- _loc5_ = _loc5_ + 1;
- _loc4_[_loc3_].c = -10;
- }
- }
- }
- else
- {
- if(com.neodelight.std.RegExp.d)
- {
- trace(" enough matches!");
- }
- _loc3_ = _loc3_ + 1;
- if(_loc3_ == _loc17_ || _loc4_[_loc3_].t == 7)
- {
- if(com.neodelight.std.RegExp.d)
- {
- trace("Saving better result: r.i = q[" + _loc14_ + "].i = " + _loc4_[_loc14_].i);
- }
- _loc16_.i = _loc4_[_loc14_].i;
- _loc16_.li = _loc5_;
- break;
- }
- _loc4_[_loc3_].c = -10;
- }
- }
- }
- while(_loc3_ < _loc17_ && _loc4_[_loc3_].t != 7)
- {
- _loc3_ = _loc3_ + 1;
- }
- }
- if(_loc16_.i < 0)
- {
- this.lastIndex = 0;
- if(com.neodelight.std.RegExp._xp-- == 1)
- {
- com.neodelight.std.RegExp._xxa = [];
- com.neodelight.std.RegExp._xxlp = 0;
- }
- return false;
- }
- _loc5_ = _loc16_.li;
- this._xi = _loc16_.i;
- com.neodelight.std.RegExp._xxlm = _loc19_.substring(_loc16_.i + 1,_loc5_ - _loc16_.i);
- com.neodelight.std.RegExp._xxlc = _loc19_.substring(1,_loc16_.i);
- com.neodelight.std.RegExp._xxrc = _loc19_.substring(_loc5_ + 1,_loc12_ - _loc5_);
- if(_loc5_ == _loc16_.i)
- {
- _loc5_ = _loc5_ + 1;
- }
- this.lastIndex = _loc5_;
- if(com.neodelight.std.RegExp._xp-- == 1)
- {
- com.neodelight.std.RegExp.lastMatch = com.neodelight.std.RegExp._xxlm;
- com.neodelight.std.RegExp.leftContext = com.neodelight.std.RegExp._xxlc;
- com.neodelight.std.RegExp.rightContext = com.neodelight.std.RegExp._xxrc;
- com.neodelight.std.RegExp._xaStatic = com.neodelight.std.RegExp._xxa;
- com.neodelight.std.RegExp.lastParen = com.neodelight.std.RegExp._xxa[Number(com.neodelight.std.RegExp._xxlp)];
- _loc3_ = 1;
- while(_loc3_ < 10)
- {
- com.neodelight.std.RegExp["$" + _loc3_] = com.neodelight.std.RegExp._xaStatic[Number(_loc3_)];
- _loc3_ = _loc3_ + 1;
- }
- }
- return true;
- }
- function exec()
- {
- var _loc6_ = arguments[0] + "";
- var _loc4_ = undefined;
- if(_loc6_ == "")
- {
- return false;
- }
- var _loc7_ = this.test(_loc6_);
- if(_loc7_)
- {
- _loc4_ = new Array();
- _loc4_.index = this._xi;
- _loc4_.input = _loc6_;
- _loc4_[0] = com.neodelight.std.RegExp.lastMatch;
- var _loc5_ = com.neodelight.std.RegExp._xaStatic.length;
- var _loc3_ = 1;
- while(_loc3_ < _loc5_)
- {
- _loc4_[_loc3_] = com.neodelight.std.RegExp._xaStatic[Number(_loc3_)];
- _loc3_ = _loc3_ + 1;
- }
- }
- else
- {
- _loc4_ = null;
- }
- return _loc4_;
- }
- static function setStringMethods()
- {
- if(String.prototype.match != undefined)
- {
- return undefined;
- }
- String.prototype.match = function()
- {
- if(typeof arguments[0] != "object")
- {
- return null;
- }
- if(arguments[0].const != "RegExp")
- {
- return null;
- }
- var _loc3_ = arguments[0];
- var _loc6_ = this.valueOf();
- var _loc7_ = 0;
- var _loc4_ = 0;
- var _loc5_ = undefined;
- if(_loc3_.global)
- {
- _loc3_.lastIndex = 0;
- while(_loc3_.test(_loc6_))
- {
- if(_loc4_ == 0)
- {
- _loc5_ = new Array();
- }
- _loc4_;
- _loc5_[_loc4_++] = com.neodelight.std.RegExp.lastMatch;
- _loc7_ = _loc3_.lastIndex;
- }
- _loc3_.lastIndex = _loc7_;
- }
- else
- {
- _loc5_ = _loc3_.exec(_loc6_);
- _loc4_ = _loc4_ + 1;
- }
- return _loc4_ != 0 ? _loc5_ : null;
- };
- String.prototype.replace = function()
- {
- if(typeof arguments[0] != "object")
- {
- return null;
- }
- if(arguments[0].const != "RegExp")
- {
- return null;
- }
- var _loc8_ = arguments[0];
- var _loc7_ = arguments[1] + "";
- var _loc11_ = this;
- var _loc12_ = "";
- _loc8_.lastIndex = 0;
- if(_loc8_.global)
- {
- var _loc13_ = 0;
- var _loc10_ = 0;
- while(_loc8_.test(_loc11_))
- {
- var _loc5_ = 0;
- var _loc9_ = _loc7_.length;
- var _loc3_ = "";
- var _loc6_ = "";
- var _loc4_ = "";
- while(_loc5_ < _loc9_)
- {
- _loc5_;
- _loc3_ = _loc7_.substring(1 + _loc5_++,1);
- if(_loc3_ == "$" && _loc6_ != "\\")
- {
- _loc5_;
- _loc3_ = _loc7_.substring(1 + _loc5_++,1);
- if(isNaN(Number(_loc3_)) || Number(_loc3_) > 9)
- {
- _loc4_ += "$" + _loc3_;
- }
- else
- {
- _loc4_ += com.neodelight.std.RegExp._xaStatic[Number(_loc3_)];
- }
- }
- else
- {
- _loc4_ += _loc3_;
- }
- _loc6_ = _loc3_;
- }
- _loc12_ += _loc11_.substring(_loc10_ + 1,_loc8_._xi - _loc10_) + _loc4_;
- _loc10_ = _loc8_._xi + com.neodelight.std.RegExp.lastMatch.length;
- _loc13_ = _loc8_.lastIndex;
- }
- _loc8_.lastIndex = _loc13_;
- }
- else if(_loc8_.test(_loc11_))
- {
- _loc12_ += com.neodelight.std.RegExp.leftContext + _loc7_;
- }
- _loc12_ += _loc8_.lastIndex != 0 ? com.neodelight.std.RegExp.rightContext : _loc11_;
- return _loc12_;
- };
- String.prototype.search = function()
- {
- if(typeof arguments[0] != "object")
- {
- return null;
- }
- if(arguments[0].const != "RegExp")
- {
- return null;
- }
- var _loc3_ = arguments[0];
- var _loc5_ = this;
- _loc3_.lastIndex = 0;
- var _loc4_ = _loc3_.test(_loc5_);
- return !_loc4_ ? -1 : _loc3_._xi;
- };
- String.prototype.old_split = String.prototype.split;
- String.prototype.split = function()
- {
- if(typeof arguments[0] == "object" && arguments[0].const == "RegExp")
- {
- var _loc3_ = arguments[0];
- var _loc8_ = arguments[1] != null ? Number(arguments[1]) : 9999;
- if(isNaN(_loc8_))
- {
- _loc8_ = 9999;
- }
- var _loc6_ = this;
- var _loc9_ = new Array();
- var _loc5_ = 0;
- var _loc11_ = _loc3_.global;
- _loc3_.global = true;
- _loc3_.lastIndex = 0;
- var _loc7_ = 0;
- var _loc10_ = 0;
- var _loc4_ = 0;
- while(_loc5_ < _loc8_ && _loc3_.test(_loc6_))
- {
- if(_loc3_._xi != _loc4_)
- {
- _loc5_;
- _loc9_[_loc5_++] = _loc6_.substring(_loc4_ + 1,_loc3_._xi - _loc4_);
- }
- _loc4_ = _loc3_._xi + com.neodelight.std.RegExp.lastMatch.length;
- _loc10_ = _loc7_;
- _loc7_ = _loc3_.lastIndex;
- }
- if(_loc5_ == _loc8_)
- {
- _loc3_.lastIndex = _loc10_;
- }
- else
- {
- _loc3_.lastIndex = _loc7_;
- }
- if(_loc5_ == 0)
- {
- _loc9_[_loc5_] = _loc6_;
- }
- else if(_loc5_ < _loc8_ && com.neodelight.std.RegExp.rightContext.length > 0)
- {
- _loc5_;
- _loc9_[_loc5_++] = com.neodelight.std.RegExp.rightContext;
- }
- _loc3_.global = _loc11_;
- return _loc9_;
- }
- return this.old_split(arguments[0],arguments[1]);
- };
- return true;
- }
- function toString()
- {
- return "[RegExp \"" + this.source + "\"]";
- }
- }
-