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 iType = iEndOfModifiers; int iEndOfType = tok_endOfType(tok, iEndOfModifiers); S type = joinSubList_cToC(tok, iType, iEndOfType); S var = identifierOrQuestionMark(get(tok, iEndOfType); printVars(+i, +iModifiers, +iEndOfModifiers, +iType, +iEndOfType, +type, +var); tokReplace_reTok(tok, i, i+2, tok_formatDollarVars( joinSubList(tok, iModifiers, iEndOfModifiers) + "public selfType $var aka $setVar($type $var) { this.$var = $var; this; } gettable ", +type, +var, setVar := "set" + firstToUpper(var))); } tok_gettableFields(tok); }