Warning: session_start(): open(/var/lib/php/sessions/sess_qkmjrrvofhlne10pafdvg2ej8e, 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
!759
static Class parser;
p {
print("parser bot loading");
parser = hotwire_overBot("#1002719");
print("parser bot loaded");
makeBot();
}
answer {
// turing-testable!
if "does * parse as * with rules *" exceptionToUser {
S text = m.unq(0);
S className = m.unq(1);
S rules = m.unq(2);
ret doesParse(text, className, rules);
}
if "does * jparse as *" exceptionToUser {
S text = m.unq(0);
S className = m.unq(1);
S rules = "#1002329"; // Java parsing rules
ret doesParse(text, className, rules);
}
if "parse * with rules *" exceptionToUser {
S text = m.unq(0);
S rules = m.unq(1);
S explainClass = null;
O result;
time {
result = call(parser, "parse", text, rules);
}
/*if (debug)
ret "```" + call(result, "prettierAnalysis") + "```";
else if (explain)
ret structure(call(result, "explain", explainClass));
else*/ {
L classes = cast call(result, "fullMatchClasses");
ret (empty(classes) ? "not parsed" : "parsed as " + structure(classes)) + " [" + getLastTiming() + " ms, " + getOpt(parser, "timing") + " ms actual]";
}
}
}
static S doesParse(S text, S className, S rules) {
O result;
L classes;
time {
result = call(parser, "parse", text, rules);
classes = (L) call(result, "fullMatchClasses");
}
S answer = classes.contains(className) ? "yes" : "no";
S timing = " [" + getLastTiming() + " ms]";
ret answer + timing;
}