Warning: session_start(): open(/var/lib/php/sessions/sess_srmiie676m30c7ecsqb2j8asp2, 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
/* e.g.
overlay <- ScreenOverlay
bounds <- rightScreenBounds
overlay bounds bounds
overlay show
*/
sclass GazelleV_LeftArrowScript > SimpleLeftToRightParser {
interface Evaluable {
public O get(VarContext ctx default new);
}
// We're using SynchronizedList as a list wrapper
//sclass Script extends ArrayList {
sclass Script extends SynchronizedList is Evaluable {
*() { super(new L); }
public O get(VarContext ctx) {
O result = null;
for (step : this)
result = step.get(ctx);
ret result;
}
}
srecord noeq Assignment(S var, Evaluable expression) is Evaluable {
public O get(VarContext ctx) {
O o = expression.get(ctx);
ctx.set(var, o);
ret o;
}
}
srecord noeq NewObject(Class c) is Evaluable {
public O get(VarContext ctx) {
ret callConstructor(c);
}
}
srecord noeq GetVar(S var) is Evaluable {
public O get(VarContext ctx) {
ret ctx.get(var);
}
}
srecord noeq Const(O value) is Evaluable {
public O get(VarContext ctx) {
ret value;
}
}
srecord CallMethod(Evaluable target, S methodName, L args) is Evaluable {
public O get(VarContext ctx) {
ret call(target.get(ctx), methodName, mapToArray(args, arg -> arg.get(ctx)));
}
}
}