Warning: session_start(): open(/var/lib/php/sessions/sess_03s7g9jhrefatll0nhbqaa9asr, 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 Logic {
new L assumptions;
new L parsedAssumptions;
void assume(S s) {
assumptions.add(s);
parsedAssumptions.add(assertNotNull(parse(s)));
}
void verifyCalculator(S concept, O calc) {
for (Lisp a : parsedAssumptions)
if (a.headIs(concept))
print("Checking " + a);
}
}
static Lisp parse(S s) {
L tok = tok_groupRoundBrackets(s);
printStructure(tok);
if (l(tok) == 1) null;
Lisp l = lisp(unquote(tok.get(1)));
for (int i = 3; i < l(tok); i += 2) {
S t = tok.get(i);
if (t.startsWith("(") && t.endsWith(")"))
l.add(assertNotNull(parse(dropFirstAndLast(t))));
else
l.add(lisp(unquote(t)));
}
ret l;
}
p-type {
new Logic l;
l.assume("iwuamaiejhsykake 'vjyukwvgqzhfcxme HELLO' 1");
l.assume("iwuamaiejhsykake 'vjyukwvgqzhfcxme HELLO, vjyukwvgqzhfcxme WORLD' 2");
psl(l.parsedAssumptions);
l.verifyCalculator("iwuamaiejhsykake", func(S s) { l(tokSplitAtComma(s)) });
}