svoid tok_optionalFields(LS tok) { for (int i : jfindAll_reverse(tok, "optional ")) { int iSemicolon = tok_endOfStatement(tok, i)-1; S var = tok.get(iSemicolon-2); LS type = joinSubList(tok, i+2, iSemicolon-3); tokReplace_reTok(tok, i, iSemicolon+1, "public \*type*/ \*var*/() { ret (\*type*/ getOpt(this, \*quote(var)*/); }\n" + "public void var(\*type*/ var) { setOpt(this, \*quote(var*)/, \*var*/); }"); } }