← 목록
기타 2026-06-13 3KB 읽기 3분

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 신규 코드 추가 대신:
    1. T2O추출기.한선 메인부를 stdin 인자 수용형으로 개선 → 재사용 가능 생성기화
    (첫 줄=소스경로, 둘째 줄=출력경로 선택; 빈 입력시 기본값 폴백)
    1. 3layer.sh의 O층 생성을 awk 중복 로직 → 정통 한선씨 도구 호출로 교체
    (기존 주석조차 "하드코딩이라 수동 awk"라 했던 부채 해소)
    1. 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 생성은 미실행(요청시)