Warning: session_start(): open(/var/lib/php/sessions/sess_6lpeujaboi89g371q41n2i93ih, 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
// usually returns value from 0 to 1 (possibly higher values too depending on pattern)
static double mmo2_scoredMatch(MMOPattern pattern, S s) {
ret mmo2_scoredMatch(pattern, s, false, false);
}
static double mmo2_scoredMatch(MMOPattern pattern, S s, bool startOfLine, bool endOfLine) {
ifdef mmo2_scoredMatch_debug
printFunctionCall mmo2_scoredMatch(pattern, s, startOfLine, endOfLine);
endifdef
if (pattern == null) ret 0;
S s2 = trim(s);
if (pattern cast MMOPattern.StartOfLine)
ret mmo2_scoredMatch(pattern.p, s2, true, endOfLine);
if (pattern cast MMOPattern.EndOfLine)
ret mmo2_scoredMatch(pattern.p, s2, startOfLine, true);
if (pattern cast MMOPattern.Phrase)
ret mmo2_match(pattern, s, startOfLine, endOfLine) ? 1 : 0;
if (pattern cast MMOPattern.And)
ret doubleProduct(map(pattern.l, pat -> mmo2_scoredMatch(pat, s2, startOfLine, endOfLine)));
if (pattern cast MMOPattern.Or)
ret doubleMax(map(pattern.l, pat -> mmo2_scoredMatch(pat, s2, startOfLine, endOfLine)));
if (pattern cast MMOPattern.Not)
ret invertZeroToOne(mmo2_scoredMatch(pattern.p, s2, startOfLine, endOfLine));
if (pattern cast MMOPattern.Weighted)
ret mmo2_scoredMatch(pattern.p, s2, startOfLine, endOfLine)*pattern.weight;
fail("what. " + pattern);
}
static double mmo2_scoredMatch(S pattern, S s) {
ret mmo2_scoredMatch(mmo2_parsePattern(pattern), s);
}