Warning: session_start(): open(/var/lib/php/sessions/sess_7dfgvvoi344pjkc6dl17ckj6np, 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
static void tok_simplyCachedFunctions(L tok) { pcall {
int i = -1;
while ((i = jfind(tok, i+1, "simplyCached ")) >= 0) {
Cl modifiers = tok_modifiersLeftOf(tok, i);
int iMod = tok_leftScanModifiers(tok, i);
int bracket = indexOf(tok, "(", i);
S fName;
try {
fName = assertIdentifier(tok.get(bracket-2));
} on fail {
printTokenContext(tok, iMod, bracket-2);
}
int iMod2 = tok_rightScanModifiers(tok, i+2);
modifiers.addAll(codeTokensFromSubList(tok, i+2, iMod2));
S type = joinSubList(tok, iMod2, bracket-3);
S boxedType = tok_toNonPrimitiveTypes(type);
S fieldMods = joinWithSpace(listMinus(modifiers, "final", "abstract"));
S functionMods = joinWithSpace(listMinus(modifiers, "transient", "abstract"));
S loadFunctionMods = joinWithSpace(listMinus(modifiers, "transient"));
bool isVoid = eq(type, "void");
S var = isVoid ? "ran_" + fName : fName + "_cache";
S implFunc = isVoid ? fName + "_impl" : fName + "_load";
S varType = isVoid ? "bool" : boxedType;
S replacement =
// variable declaration
"\*fieldMods*/ \*varType*/ \*var*/;\n"
+ "\*functionMods*/ \*type*/ \*fName*/() { "
// function body
+ (isVoid
? "if (\*var*/) ret; set \*var*/; \*implFunc*/();"
: "if (\*var*/ == null) \*var*/ = \*fName*/_load(); ret \*var*/;")
+ "}\n\n"
// beginning of impl function
+ "\*loadFunctionMods*/ \*type*/ \*implFunc*/";
replaceTokens_reTok(tok, iMod, bracket-1, replacement);
}
}}