Warning: session_start(): open(/var/lib/php/sessions/sess_1u34a60bpds12qmn7jds9l6g92, 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
!7
sclass MatchInput > DynPrintLogWithInput {
start { dm_useLocallyCopiedMechLists(); }
void update(S s) {
print("\n> " + s);
L tokInput = printStruct(javaTokWithAngleBracketsC(s));
new L results;
// Try matching pattern & input word-by-word
for (S pat : mech_englishSentencePatterns())
ai_matchAngleBracketPattern_toParseResults(javaTokWithAngleBracketsC(pat), tokInput, results);
// Try expanding patterns
for (S pat : mech_englishSentencePatterns()) {
LS tokPat = javaTokWithAngleBracketsC(pat);
for (LS spreadInput : ai_spreadAllAngleVars(tokPat, tokInput))
ai_matchAngleBracketPattern_toParseResults(pat, spreadInput, results);
}
// Go through sorted results, try to solve assumptions
for (ParseResult1 p : parseResultsByNumberOfAssumptions(results)) {
new L verified;
for (PairS assumption : p.assumptions) {
S category = assumption.a, phrase = assumption.b;
if (eq(category, ""))
for (S pat : mL("Noun phrase patterns")) {
LPairS match = ai_matchAngleBracketPattern(javaTokWithAngleBracketsC(pat), javaTokWithAngleBracketsC(phrase));
if (match != null && empty(match)) {
print("Verified: " + assumption);
verified.add(assumption);
}
}
}
if (nempty(verified))
results.add(ParseResult1(p.pat, p.input, listPlusList(p.matches, verified), listMinusList(p.assumptions, verified));
}
for (ParseResult1 p : parseResultsByNumberOfAssumptions(results))
print(" [" + l(p.assumptions) + "] " + ai_renderMatchWithQuestionMarks(p.assumptions) + " | pattern " + quote(join(p.pat)) + " for input " + quote(join(p.input)));
}
}