Warning: session_start(): open(/var/lib/php/sessions/sess_8u4uujac9619duspc2srgai3en, 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
sclass BEACalculations {
GazelleBEA mod;
*(GazelleBEA *mod) {}
/*void reactAllInputsWithSomePatterns() {
forEach reactInputWithSomePatterns(mod.beaObjectsOfType("input"));
}*/
class ReactInputWithSomePatterns implements Steppable {
BEAObject input;
Concepts ccOut;
int max = 3, n;
Iterator patterns;
void start {
n = countConceptsWhereIC(ccOut, BEAObject, +input, type := "match");
patterns = iterator(conceptsWhereIC BEAObject(type := "Pattern"));
}
public bool step() {
if (n >= max) false;
if (!patterns.hasNext()) false;
if (reactInputWithPattern(input, patterns.next(), ccOut) != null)
++n;
true;
}
}
SS matchInputWithPattern(BEAObject input, BEAObject pattern) {
ret flexMatchAngleBracketVarsIC_first(getString text(pattern), getString text(input));
}
BEAObject reactInputWithPattern(BEAObject input, BEAObject pattern, Concepts ccOut) {
SS mapping = matchInputWithPattern(pattern, input);
printVars_str("reactInputWithPattern", +pattern, +mapping);
if (mapping == null) null;
ret cnew(ccOut, BEAObject,
type := "Match",
+input,
+pattern,
+mapping);
}
O serveAnalyzeInput(GazelleBEA.Req req) {
S text = req.get("q");
new Concepts ccOut;
BEAObject input = cnew(ccOut, BEAObject, type := "Input", +text);
new ReactInputWithSomePatterns r;
r.input = input;
r.ccOut = ccOut;
r.max = 1000;
r.start();
stepAllWithTimeout(10.0, r);
ret p("Input: " + htmlEncode(text))
+ p("Matches")
+ ul_htmlEncode(conceptsWhereIC(ccOut, BEAObject, type := "Match"));
}
}