evo/tools/waves_n15.py

56 lines
2.1 KiB
Python

"""Волна 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 '<oob>').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)