업데이트 2.202
2026. 8. 1.
v2.202.0.0BETAMINOR
Seymour2026년 8월 1일
F5-L3: 전체 컴파일러 — 영속 변수, while (jump-table 루프), func/call (인라인 매크로) + 테스트 9개
FfxLib/Ai/AtelScript/AtelProgramCompiler.cs(신규): 0단계에서는func(명명된 블록)을 수집합니다; 1단계 영구 변수 —var name = expr;는 AiFile 테이블에서 이름을 조회하거나 사적 변수를 생성 (AppendPrivateVariableDescriptor+TryFindFreePrivateVariableSlot) 한 후 초기화합니다; 2단계에서는 만약/동안/대입/호출을 수행합니다.EmitWhile: jump-table 루프는 검증된AppendGuardedAction패턴을 따릅니다(가드 →D7를 통해 원래 흐름으로 이동 → 본문 →B0를 통해 가드로 복귀;Rebuild+GrowWorkerJumpTable+ 진입점 재지정 — 테스트에서 검증된 대상: 종료=원래 진입점, 루프=baseRel).call name;는 함수를 인라인으로 확장합니다(매크로 — JSR/RTS 스택 없음, 문서화됨).- AST/ 파서 확장:
AtelWhile/AtelFuncDecl/AtelCall+while/func/call파싱 (렉서 내의call키워드). - 테스트 (9개 + 1개의 업데이트된 파서 테스트): var가 비공개 변수를 생성함 (m001) / 중복 없음 (기존 이름) / 비공개 저장 공간이 없는 m000 → 명확하고 타당한 오류; 반면 round-trips는 점프 테이블 +2 슬롯 및 검증된 대상 포함; 프우느크/call은 인라인으로 확장됨; 프우느크 없이 호출 → 오류; 만약+동안 결합; 본문에 call이 포함된 동안; 동안 내부에
>가드(순서 교환)가 있음. - 기준치: 324/324 PASS (312명 + 신규 12명). ### MINOR ### MINOR
v2.201.0.0