"""Волна N+15: vfbuild31 — 15 EF в aemo-подобном aeo.java (var7-var12 в visit lambda). Запуск: python3 tools/waves_n15.py""" import os, sys ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) JAVA = os.path.join(ROOT, "src/main/java") p = os.path.join(JAVA, "defpackage/aeo.java") L = open(p, encoding="utf-8", errors="replace").read().splitlines() ok = True def edit(ln, old, new): global ok i = ln - 1 if i < len(L) and old in L[i]: L[i] = L[i].replace(old, new, 1) elif i < len(L) and new in L[i]: pass else: ok = False print(f"MISS {ln}: {old!r} got {(L[i] if i < len(L) else '').strip()!r}") edit(396, "Math.min(var8 - var11x,", "Math.min(var8f - var11x,") edit(395, "Math.max(var7 - var11x,", "Math.max(var7f - var11x,") edit(386, "> var7)", "> var7f)") edit(383, "((MutableComponent)var10).append(", "((MutableComponent)var10f).append(") edit(379, "/ (var9 - ", "/ (var9f - ") edit(378, "(float)var12[0]", "(float)var12f[0]") edit(361, ">= var8)", ">= var8f)") edit(354, "if (var9 > ", "if (var9f > ") edit(347, "var12[0] = var12[0]", "var12f[0] = var12f[0]") edit(346, "((MutableComponent)var10).append(", "((MutableComponent)var10f).append(") edit(337, "var11[0] = var11x +", "var11f[0] = var11x +") edit(336, "var11x = var11[0];", "var11x = var11f[0];") edit(329, "((MutableComponent)var10).append(", "((MutableComponent)var10f).append(") edit(311, "((MutableComponent)var10).append(", "((MutableComponent)var10f).append(") INS = [ " final int var7f = var7;", " final int var8f = var8;", " final int var9f = var9;", " final Component var10f = var10;", " final int[] var11f = var11;", " final int[] var12f = var12;", ] if L[296].strip().startswith("var10.visit(") and "final int var7f" not in L[290:297]: L[296:296] = INS else: ok = False print(f"INSERT-MISS: L297 = {L[296].strip()[:60]!r}") open(p, "w", encoding="utf-8").write("\n".join(L) + "\n") print("OK" if ok else "PROBLEMS") sys.exit(0 if ok else 1)