Warning: session_start(): open(/var/lib/php/sessions/sess_3r1ei4n3do97tbrcfu0p22uir5, 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
replace SimpleStatements with MatchableRecords.
replace Env with SimpleStatements.
abstract sclass Prop implements IFieldsToList {}
static withToList record Did$HappenBefore$(A event1, B event2) {}
static withToList record WhenDid$Happen(O event) extends Prop {}
static withToList record $HappensAtSecond$(A event, B y) extends Prop {}
static cached L> propClasses() { ret myNonAbstractClassesImplementing(Prop); }
static cached LPair, S> classesAndPatterns() {
ret map(propClasses(),
c -> pair(c, dollarsToStarsAndSplitCamelCase(shortClassName(c))));
}
static O parseArg(S s) { ret isInteger(s) ? parseInt(s) : s; }
static Prop parseProp(S s) {
new Matches m;
for (Pair, S> p : classesAndPatterns()) {
if (match(p.b, s, m))
ret nuObject(p.a, map parseArg(m.m));
}
null;
}
p-exp {
for (S s : tlft([[
Did X happen before Y?
when did Z happen
]]))
print(s + " => " + parseProp(s));
}