Compiler #8 — 3레이어(T/O/A) 문서 자동생성 완성
개요
계획판 compiler 영역 마지막 1건(#8
6753d0af). hanseonc_high가 .한선을
컴파일할 때 T(한글원본)/O(@의미코드)/A(TOAU 기계어) 3계층을 함께 산출하는 기능.
기존에 인프라가 대부분 존재했고, 정통 한선씨 도구의 사용성 결함을 고쳐 완성.
정찰 결과
.3layer 포맷 정본: /Users/ef/CrownyOS/docs/3LAYER_FORMAT.md (v1.0, T/O/A 구조 정의)
기존 흔적:
C --3layer 플래그: hanseonc_high.c:3891 generate_3layer() (main 4015 wired) — 동작하나 O/A 추출 부실
정통 한선씨 도구: tools/3layer/T2O추출기.한선 — 완전한 ISA729 매핑, 단 입출력 경로 하드코딩으로 재사용 불가
쉘 래퍼: 3layer.sh(통합뷰), O2A_뷰어.sh(A층), 배치_3layer.sh(일괄), 3layer_diff.sh
산출물 다수: docs/tip/*.3layer, pkg/docs/*.3layer
#8 정의: "--3layer 플래그로 T/O/A 계층 .3layer 파일 생성"선택한 구현 방식과 이유
헌법 우선(한선씨 정통 도구 > C). C 신규 코드 추가 대신:
T2O추출기.한선 메인부를 stdin 인자 수용형으로 개선 → 재사용 가능 생성기화
(첫 줄=소스경로, 둘째 줄=출력경로 선택; 빈 입력시 기본값 폴백)
3layer.sh의 O층 생성을 awk 중복 로직 → 정통 한선씨 도구 호출로 교체
(기존 주석조차 "하드코딩이라 수동 awk"라 했던 부채 해소)
- C
--3layer는 의존없는 폴백으로 유지
산출/수정 파일
/Users/ef/CrownyOS/crownyc/tools/3layer/T2O추출기.한선 (stdin 인자화 + 출력경로도출)
/Users/ef/CrownyOS/crownyc/tools/3layer/3layer.sh (O층=한선씨 도구 호출)
- 검증 산출:
/Users/ef/CrownyOS/docs/3layer/문자열.3layer
T/O/A 샘플 (JSON.한선)
; ═══ O층 (의미코드) ═══
L36: @함수정의 ISA729:CALL(2)/RET(3)
L37: @변수선언 ISA729:STORE(5)
L38: @반복_while ISA729:JMP(6)
L52: @배열_설정 ISA729:ASET(407)
; @의미코드추출 274/520
A층: O2A_뷰어가 TOAU 트레이스를 @semantic 태깅 출력.
사용법
bash# 정통 한선씨 생성기
./hanseonc_high tools/3layer/T2O추출기.한선 > /tmp/T2O.toau 2>/dev/null
printf '소스.한선\n출력.3layer\n' | ./crownyc run /tmp/T2O.toau
# 통합 뷰어 (T/O/A 동시)
bash tools/3layer/3layer.sh libs/JSON.한선 --limit 30
검증
- JSON.한선: 274 의미코드 / 520줄
- 문자열.한선: 187 의미코드 / 360줄
- 배치 도구·O2A 뷰어 정상
계획판
compiler #8 done →
compiler 8/8 (100%). 학습 등록 완료.
잔여 이슈
- C generate_3layer()의 O/A 라인추출은 정통 도구 대비 부실 — 폴백이므로 보류
- 배치 도구 libs/ 전체(157개) 일괄 .3layer 생성은 미실행(요청시)