// get/set fieldName (refers to this.fieldName) // get/set fieldName(expr) (refers to expr.fieldName) svoid tok_transpileGetSet(LS tok) { jreplace(tok, "set/get ", "get/set $4"); for (int i : jfindAll_reverse(tok, "get/set ")) { S field = tok.get(i+6); int iOpening = i+8; int iClosing; if (eq(get(tok, iOpening), "(")) iClosing = tok_findEndOfBracketPart(tok, iOpening)-1; else iClosing = 0; S expr = iClosing == 0 ? "this" : tok_join(tok, iOpening+1, iClosing); int iEnd = iClosing == 0 ? iOpening-2 : iClosing; tokReplace_reTok(tok, i, iEnd+1, replaceDollarVars("iSetAndGet($expr, " + "(e, v) -> { e.$field = v; }, " + "e -> e.$field)", +expr, +field)); } }