Warning: session_start(): open(/var/lib/php/sessions/sess_t1f385pmbvbuu8nl3b0mlv6evs, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
sbool mmo2_match(MMOPattern pattern, S s) {
ret mmo2_match(pattern, s, false, false);
}
sbool mmo2_match(MMOPattern pattern, S s, bool startOfLine, bool endOfLine) {
ifdef mmo2_match_debug
printFunctionCall mmo2_match_debug(pattern, s, startOfLine, endOfLine);
endifdef
S s2 = trim(s);
if (pattern == null) false;
if (pattern cast MMOPattern.StartOfLine)
ret !mmo2_match(pattern.p, s2, true, endOfLine);
if (pattern cast MMOPattern.EndOfLine)
ret !mmo2_match(pattern.p, s2, startOfLine, true);
if (pattern cast MMOPattern.Phrase) {
S p = pattern.phrase;
if (pattern.quoted) ret cicWithSmartWordBoundary(s2, p);
if (startsWith(p, "#")) ret eqic(p, s2);
if (startOfLine)
ret endOfLine ? match3(p, s2) : matchStart(p, s2);
else
ret endOfLine ? matchEnd(p, s2) : find3(p, s2);
}
if (pattern cast MMOPattern.And)
ret all(pattern.l, pat -> mmo2_match(pat, s2, startOfLine, endOfLine));
if (pattern cast MMOPattern.Or)
ret any(pattern.l, pat -> mmo2_match(pat, s2, startOfLine, endOfLine));
if (pattern cast MMOPattern.Not)
ret !mmo2_match(pattern.p, s2, startOfLine, endOfLine);
fail("what. " + pattern);
}
sbool mmo2_match(S pattern, S s) {
ret mmo2_match(mmo2_parsePattern(pattern), s);
}