UNPKG

openfl

Version:

A fast, productive library for 2D cross-platform development.

127 lines (109 loc) 3.06 kB
// Class: EReg var $global = typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this $global.Object.defineProperty(exports, "__esModule", {value: true}); var __map_reserved = {}; // Imports var $hxClasses = require("./hxClasses_stub").default; var $hxEnums = require("./hxEnums_stub").default; var $import = require("./import_stub").default; function js__$Boot_HaxeError() {return require("./js/_Boot/HaxeError");} function HxOverrides() {return require("./HxOverrides");} function StringBuf() {return require("./StringBuf");} // Constructor var EReg = function(r,opt) { this.r = new RegExp(r,opt.split("u").join("")); } // Meta EReg.__name__ = "EReg"; EReg.__isInterface__ = false; EReg.prototype = { match: function(s) { if(this.r.global) { this.r.lastIndex = 0; } this.r.m = this.r.exec(s); this.r.s = s; return this.r.m != null; }, matched: function(n) { if(this.r.m != null && n >= 0 && n < this.r.m.length) { return this.r.m[n]; } else { throw new (js__$Boot_HaxeError().default)("EReg::matched"); } }, matchedRight: function() { if(this.r.m == null) { throw new (js__$Boot_HaxeError().default)("No string matched"); } var sz = this.r.m.index + this.r.m[0].length; return (HxOverrides().default).substr(this.r.s,sz,this.r.s.length - sz); }, matchedPos: function() { if(this.r.m == null) { throw new (js__$Boot_HaxeError().default)("No string matched"); } return { pos : this.r.m.index, len : this.r.m[0].length}; }, matchSub: function(s,pos,len) { if(len == null) { len = -1; } if(this.r.global) { this.r.lastIndex = pos; this.r.m = this.r.exec(len < 0 ? s : (HxOverrides().default).substr(s,0,pos + len)); var b = this.r.m != null; if(b) { this.r.s = s; } return b; } else { var b1 = this.match(len < 0 ? (HxOverrides().default).substr(s,pos,null) : (HxOverrides().default).substr(s,pos,len)); if(b1) { this.r.s = s; this.r.m.index += pos; } return b1; } }, split: function(s) { var d = "#__delim__#"; return this.replace(s,d).split(d); }, replace: function(s,by) { return s.replace(this.r,by); }, map: function(s,f) { var offset = 0; var buf = new (StringBuf().default)(); while(true) { if(offset >= s.length) { break; } else if(!this.matchSub(s,offset)) { buf.add((HxOverrides().default).substr(s,offset,null)); break; } var p = this.matchedPos(); buf.add((HxOverrides().default).substr(s,offset,p.pos - offset)); buf.add(f(this)); if(p.len == 0) { buf.add((HxOverrides().default).substr(s,p.pos,1)); offset = p.pos + 1; } else { offset = p.pos + p.len; } if(!this.r.global) { break; } } if(!this.r.global && offset > 0 && offset < s.length) { buf.add((HxOverrides().default).substr(s,offset,null)); } return buf.toString(); } }; EReg.prototype.__class__ = EReg.prototype.constructor = $hxClasses["EReg"] = EReg; // Init // Statics // Export exports.default = EReg;