Warning: session_start(): open(/var/lib/php/sessions/sess_ci11u7b92hgsorfgquiv7bj9ig, 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 nlLogic_flexMatch_iterate_debug;
svoid nlLogic_flexMatch_iterate(S pat, S input, NLLogicChecker_v2.Matching m, Runnable onMatch, VarMatches oldMatches) {
if (nlLogic_flexMatch_iterate_debug)
print("nlLogic_flexMatch_iterate " + pat + " / " + input);
L tokPat = parse3_cachedPattern(pat), tokInput = parse3_cachedInput(input);
// fail if crucial words not found (could be optimized more)
new L varIndices;
for (int i = 1; i < l(tokPat); i += 2) {
S t = tokPat.get(i);
if (isDollarVar(t))
varIndices.add(i);
else if (isIdentifier(t) && !cicAtOddPosition(tokInput, t)) {
if (nlLogic_flexMatch_iterate_debug)
print("Crucial word fail (" + t + "): " + pat + " / " + input);
ret;
}
}
if (nlLogic_flexMatch_iterate_debug)
printStruct(+varIndices);
LL spreadInputs = ai_spreadCertainIndices(tokPat, tokInput, varIndices);
for (L tok : spreadInputs) {
if (nlLogic_flexMatch_iterate_debug)
print("Testing spread input: " + sfu(tok));
SS newMatches = matchDollarVarsIC(pat, tok);
if (newMatches != null && addMapToMapWithoutOverwritingIC(m.matches, newMatches))
try { callF(onMatch); } finally { m.matches = oldMatches; }
}
}