fix(M01): 설계 입력 비어도 텍스트 수식 이름 식은 보임
master_text._env_of 가 입력을 못 갖추면(값 넣기 전) 받은 것만 담고 중간은 건너뛰어 lines() 가 ok:false 로 일찍 안 죽고 이름 식·조각까지 짓게 함 고른 값이 틀린 경우(고르기·범위 밖)는 지금처럼 그대로 멈춤 — 구분해 시험 둘로 확인
This commit is contained in:
@@ -260,7 +260,12 @@ def _formula_pieces(text, env: dict, master, name_of: dict, alias_by_name: dict)
|
||||
|
||||
# ── 줄 세우기 ─────────────────────────────────────────────────────────
|
||||
def _env_of(master, row: dict, given: dict, depth: int = 0) -> dict:
|
||||
"""입력 + 중간 — `run` 과 같은 차례로 다시 셈(덧줄 전 상태)."""
|
||||
"""입력 + 중간 — `run` 과 같은 차례로 다시 셈(덧줄 전 상태).
|
||||
아직 안 고른 입력이 있으면(값 넣기 전) 받은 것만 담아 돌려줌 — 이름 식은 값 없이도 지어짐
|
||||
(고른 값이 틀린 경우(고르기·범위 밖)는 지금처럼 그대로 막힘 — `mf._inputs` 가 걸러냄)."""
|
||||
specs = row.get("입력", [])
|
||||
if any(spec["이름"] not in given for spec in specs):
|
||||
return {spec["이름"]: given[spec["이름"]] for spec in specs if spec["이름"] in given}
|
||||
env = mf._inputs(row, given)
|
||||
for step in row.get("중간", []):
|
||||
env[step["이름"]] = mf.evaluate(mf.parse(step["식"]), env, master, depth)
|
||||
|
||||
Reference in New Issue
Block a user