Warning: session_start(): open(/var/lib/php/sessions/sess_ct1552lg02ngt0983bg8v531mr, 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 SimpleLeftToRightParser {
S text;
LS tok;
ListAndIndex ptr, mainLoopPtr;
S currentToken;
bool caseInsensitive;
new L warnings;
*(S *text) {}
*(LS *tok) {}
S t() { ret currentToken; }
S tpp() { var t = t(); next(); ret t; }
bool is(S t) { ret eqOrEqic(caseInsensitive, currentToken, t); }
bool isInteger() { ret isInteger(t()); }
bool isInteger(S s) { ret main isInteger(s); }
void next { if (!endOfText()) ptr(ptr.plus(2)); }
void ptr(ListAndIndex ptr) { this.ptr = ptr; fetch(); }
bool atEnd aka endOfText() { ret ptr.atEnd(); }
void fetch { currentToken = ptr!; }
void init {
tok if null = javaTok(text);
ptr(ListAndIndex(tok, 1));
}
bool mainLoop() {
if (atEnd()) false;
if (eq(mainLoopPtr, ptr))
fail("main loop didn't advance");
mainLoopPtr = ptr;
true;
}
void unknownToken {
warn("Unknown token: " + t());
}
void warn(S msg) {
warnings.add(print(msg));
}
}