// adds default constructor to classes with "persistable" modifier // also allows "persistent" svoid tok_persistableClasses(LS tok) { int i; while((i = jfind_any(tok, tokCondition { for (int j = i+1; isIdentifier(_get(tok, j)); j += 2) if (eqGet(tok, j, "class")) true; false; }, "persistable", "persistent")) >= 0) { int iClass = indexOf(tok, "class", i); S className = get(tok, iClass+2); int idx = indexOf(tok, iClass, "{"); int j = findEndOfBracketPart(tok, idx); L contents = subList(tok, idx+1, j); bool hasDefaultConstructor = tok_hasDefaultConstructor(contents, className); printVars_str("tok_persistableClasses: ", +hasDefaultConstructor, +className); if (!hasDefaultConstructor) tokAppend_reTok(tok, idx, "\n *() {}"); clearTokens_reTok(tok, i, i+2); // drop persistable keyword } }