// keyword can comprise multiple tokens now (like "p-awt"} static L replaceKeywordBlock(L tok, S keyword, S beg, S end) { ret replaceKeywordBlock(tok, keyword, beg, end, false); } static L replaceKeywordBlock(L tok, S keyword, S beg, S end, bool debug) { for (int n = 0; n < 1000; n++) { int i = jfind(tok, keyword + " {"); if (i < 0) break; int idx = findCodeTokens(tok, i, false, "{"); int j = findEndOfBracketPart(tok, idx); if (debug) { print(toUpper(keyword) + " BEFORE\n" + join(subList(tok, i, j))); print(" THEN " + join(subList(tok, j, j+10))); } assertEquals("}", tok.get(j-1)); tok.set(j-1, end); replaceTokens(tok, i, idx+1, beg); reTok(tok, i, j); if (debug) print(toUpper(keyword) + "\n" + join(subList(tok, i, j)) + "\n"); } ret tok; }