Warning: session_start(): open(/var/lib/php/sessions/sess_5ir15qnq8gghh0d1n4opol2o8d, 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
static MMOPattern mmo2_parsePattern(S s) {
// drop outer brackets and tokenize
s = trim(tok_deRoundBracket(trim(s)));
LS tok = javaTokWithBrackets(s);
// commas (or) - "car, vehicle"
LS l = tok_splitAtComma(tok);
if (l(l) > 1)
ret new MMOPattern.Or(lambdaMap mmo2_parsePattern(l));
// plus (and) - "give + money"
l = tok_splitAtPlus(tok);
if (l(l) > 1)
ret new MMOPattern.And(lambdaMap mmo2_parsePattern(l));
// exclam (not) - "!something"
if (startsWith(s, "!"))
ret new MMOPattern.Not(mmo2_parsePattern(dropFirst(s)));
// ^... - match start of line
if (startsWith(s, "^"))
ret new MMOPattern.StartOfLine(mmo2_parsePattern(dropFirst(s)));
// ...$ - match end of line
if (endsWith(s, "$"))
ret new MMOPattern.EndOfLine(mmo2_parsePattern(dropLast(s)));
// ...*0.5 - weighted pattern
l = tok_splitAtAsterisk(tok);
if (l(l) == 2)
ret new MMOPattern.Weighted(parseDouble(second(l)), mmo2_parsePattern(first(l)));
// phrase (possibly quoted)
ret new MMOPattern.Phrase(unquote(s), isQuoted(s));
}