Warning: session_start(): open(/var/lib/php/sessions/sess_6r4erulfavi7157ss1cn759k64, 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
srecord noeq GazelleVScript(S text) {
LS tok;
class Run is Steppable {
ListAndIndex ptr;
// main variables
settable IBWIntegralImage integralImage;
settable BWImage bwImage;
*() {
parse();
ptr = ListAndIndex(tok, 1);
}
public bool step() {
S token = ptr!;
if (token == null) false;
next();
if (isInteger(token)) {
int i = parseInt(token);
S token2 = tpp();
if (eqic(token2, "p"))
scaleToHeight(i);
else if (eqic(token2, "c"))
posterize(i);
else
warn("Unknown token: " + token);
} else {
warn("Unknown token: " + token);
}
true;
}
S tpp() { var token = ptr!; next(); ret token; }
void next { if (!ptr.atEnd()) ptr = ptr.plus(2); }
// operations
void scaleToHeight(int pixelRows) {
pixelRows = min(pixelRows, 512);
if (integralImage == null)
ret with warn("No integral image to scale down");
bwImage = scaledBWImageFromBWIntegralImage_withMeta(pixelRows, integralImage);
}
void posterize(int colors) {
colors = clamp(colors, 2, 256);
if (bwImage == null)
ret with warn("No image to posterize");
else
bwImage = posterizeBWImage_withMeta(colors, bwImage);
}
// end of operations
O result() {
ret or(bwImage, integralImage);
}
run { stepAll(this); }
}
void parse() {
tok if null = javaTok(text);
}
}