svoid tok_settableFields(LS tok) { int i = -1; while ((i = jfind(tok, i+1, "settable ")) >= 0) { int iModifiers = i+2; int iEndOfModifiers = tok_scanModifiers_idx(tok, iModifiers); int iEndOfType = tok_endOfType(tok, iEndOfModifiers+2); S type = joinSubList_cToC(tok, i+2, iEndOfType); S var = identifierOrQuestionMark(get(tok, iEndOfType); tokReplace_reTok(tok, i, i+2, tok_formatDollarVars( joinSubList(tok, iModifiers, iEndOfModifiers) + "selfType $var aka $setVar($type $var) { this.$var = $var; this; } gettable ", +type, +var, setVar := "set" + firstToUpper(var))); } tok_gettableFields(tok); }