static void ctxSimplifyIfs(L tok) { int i; while ((i = jfind(tok, "if (")) >= 0) { int iEnd = findEndOfBracketPart(tok, i+2)-1; S cond = join(subList(tok, i+4, iEnd-1)); bool yes = ctxEvalCondition(cond); assertEquals("{", tok.get(iEnd+2)); int iEndYes = findEndOfBlock(tok, iEnd+2)-1; S yesCode = join(subList(tok, iEnd+4, iEndYes-1)); int j = iEndYes+2; S noCode = ""; if (eqGet(tok, iEndYes+2, "else")) { int iNo = iEndYes+4; assertEquals("{", tok.get(iNo)); int iEndNo = findEndOfBlock(tok, iNo)-1; j = iEndNo+2; noCode = join(subList(tok, iNo+2, iEndNo-1)); } replaceTokens_reTok(tok, i, j, yes ? yesCode : noCode); } }