hanseonc_high 고수준 컴파일러에 배열[인덱스] = 값 직접 대입 구문을 추가.
이전에는 배열 = 설정(배열, 인덱스, 값) 형태만 지원되어, VM 구현 파일 4개가 컴파일 불가였음.
1. is_bracket_assign() 헬퍼 함수 추가
이름[식] 뒤에 =이 오는지 look-ahead로 감지] 이후 = 판별parse_statement() TOK_IDENT 분기에 배열 인덱스 대입 처리 추가
이름.필드 = 값 과 이름 = 값 사이에 삽입mem[arr+index] = val 방식parse_expr(인덱스) → STORE tmp91
parse_expr(값) → STORE tmp92
emit_var_load(vi) → arr 기저주소
LOAD tmp91 → 인덱스
ADD → arr + 인덱스 = 목표주소
LOAD tmp92 → 값
SWAP + STORE → mem[목표주소] = 값
| 파일 | 이전 에러 | 이후 에러 |
|---|---|---|
| 크라우니VM.han | 255 | 0 |
| isa729코드젠.han | 255 | 0 |
| 한선VM.han | 84 | 0 |
| isa729vm.han | 66 | 0 |
| std/ 전체 | 54/79 실패 | 79/79 성공 |
/Users/ef/CrownyOS/crownyc/hanseonc_high.c — 컴파일러 수정/Users/ef/CrownyOS/crownyc/배열인덱스대입테스트.한선 — 테스트 코드/Users/ef/Downloads/CrownyTVM/std/*.han — 79개 표준 라이브러리arr[i][j] = val) 미지원 — 현재 필요 없음설정() builtin의 49997-49999와 충돌 없음