// We assume all elements of the replacements array are just identifiers // (or similarly simple) so there is no tokenization conflict // between javaTok and javaTokForStruct sS structWithReplacements(O object, S... replacements) { S s = struct(object); LS tok = javaTokForStruct(s); bool change; for (int i = 0; i < l(replacements); i += 2) if (jreplace(tok, replacements[i], replacements[i+1])) set change; ret change ? join(tok) : s; }