*/ final class EReg { /** * @var bool */ public $global; /** * @var string */ public $last; /** * @var array[] */ public $matches; /** * @var string */ public $options; /** * @var string */ public $pattern; /** * @var string */ public $re; /** * Creates a new regular expression with pattern `r` and modifiers `opt`. * This is equivalent to the shorthand syntax `~/r/opt` * If `r` or `opt` are null, the result is unspecified. * * @param string $r * @param string $opt * * @return void */ public function __construct ($r, $opt) { #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:37: characters 3-19 $this->pattern = $r; #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:38: characters 3-45 $this->options = str_replace("g", "", $opt); #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:39: characters 3-26 $this->global = $this->options !== $opt; #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:40: characters 3-49 $this->options = str_replace("u", "", $this->options); #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:41: characters 3-68 $this->re = "\"" . (str_replace("\"", "\\\"", $r)??'null') . "\"" . ($this->options??'null'); } /** * @return void */ public function handlePregError () { #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:63: characters 3-36 $e = preg_last_error(); #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:64: lines 64-72 if ($e === PREG_INTERNAL_ERROR) { #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:65: characters 4-9 throw HaxeException::thrown("EReg: internal PCRE error"); } else if ($e === PREG_BACKTRACK_LIMIT_ERROR) { #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:67: characters 4-9 throw HaxeException::thrown("EReg: backtrack limit"); } else if ($e === PREG_RECURSION_LIMIT_ERROR) { #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:69: characters 4-9 throw HaxeException::thrown("EReg: recursion limit"); } else if ($e === PREG_JIT_STACKLIMIT_ERROR) { #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:71: characters 4-9 throw HaxeException::thrown("failed due to limited JIT stack space"); } } /** * Tells if `this` regular expression matches String `s`. * This method modifies the internal state. * If `s` is `null`, the result is unspecified. * * @param string $s * * @return bool */ public function match ($s) { #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:45: characters 10-29 $p = preg_match(($this->re . "u"), $s, $this->matches, PREG_OFFSET_CAPTURE, 0); if ($p === false) { $this->handlePregError(); $p = preg_match($this->re, $s, $this->matches, PREG_OFFSET_CAPTURE); } if ($p > 0) { $this->last = $s; } else { $this->last = null; } return $p > 0; } /** * Splits String `s` at all substrings `this` EReg matches. * If a match is found at the start of `s`, the result contains a leading * empty String "" entry. * If a match is found at the end of `s`, the result contains a trailing * empty String "" entry. * If two matching substrings appear next to each other, the result * contains the empty String `""` between them. * By default, this method splits `s` into two parts at the first matched * substring. If the global g modifier is in place, `s` is split at each * matched substring. * If `s` is null, the result is unspecified. * * @param string $s * * @return string[]|\Array_hx */ public function split ($s) { #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:128: characters 3-96 $parts = preg_split(($this->re . "u"), $s, ($this->global ? -1 : 2)); #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:129: lines 129-132 if ($parts === false) { #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:130: characters 4-21 $this->handlePregError(); #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:131: characters 4-55 $parts = preg_split($this->re, $s, ($this->global ? -1 : 2)); } #/nix/store/ljakxdz94hcvn9b4k9y292dn5lhh20iy-haxe-4.2.5/lib/haxe/std/php/_std/EReg.hx:133: characters 3-48 return \Array_hx::wrap($parts); } } Boot::registerClass(EReg::class, 'EReg');