wave N+15: aeo EF var7-var12 copies in visit lambda (guard fix)
This commit is contained in:
parent
ae97ccf38c
commit
4749ef4bac
3 changed files with 142 additions and 14 deletions
56
tools/waves_n15.py
Normal file
56
tools/waves_n15.py
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
"""Волна 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)
|
||||
Loading…
Add table
Add a link
Reference in a new issue