← 목록
한선씨 2026-05-18 3KB 읽기 3분

한선씨 웹코드 통합 구문 완성

개요

한선씨 RPN으로 웹(DOM/WASM)과 네이티브(framebuffer)에서 동시 동작하는 UI 프레임워크 구축. 크라우니 디자인표준(초콜릿 #3D2B1F / 크림 #FFF8F0 / 골드 #8B6914) 내장.

작업 내용

1단계: RPN 컴파일러 웹 키워드 31개 추가

  • hanseonc_std.asm — FB(357-369), Event(810-815), DOM(790-799), Font(753-756), WASM(284) 키워드
  • 라벨 테이블 메모리 레이아웃 수정 (40000→42000, fixup 40200→41000)
  • ASM_MAX 8192→16384 확장

2단계: WASM 에미터 DOM opcode 연결

  • wasm_emit.c — DOM import 10개 추가 (import 18~27)
  • case 790~799 opcode switch 추가
  • 버퍼 확장: wasm[131072→524288], cubes[8192→32768], body[65536→262144]

3단계: 웹코드.한선 라이브러리 (420줄)

  • 렌더 타겟 자동 분기 (_렌더타겟: 0=네이티브, 1=웹)
  • 디자인 토큰 RGB 정수 (밝은/어두운 테마)
  • 통합 렌더 API: 웹코드_사각형, 웹코드_텍스트, 웹코드_둥근사각형
  • 컴포넌트: 카드, 버튼, 골드버튼, 입력, 네비, 뱃지, 구분선
  • DOM 전용 API: 요소, 텍스트노드, 클릭, 클래스
  • 레이아웃: 세로/가로 스택
  • 페이지 템플릿: CSS + 반응형 + 다크모드 + HTML 생성

4단계: hanseonc_high DOM 별칭

  • DOM찾기(794), DOM추가(792), DOM내용(797), DOM제거(796), DOM설정HTML(798)

5단계: 예제 앱 + 테스트

  • apps/웹코드예제.한선 — 대시보드 (카드3, 뱃지, 버튼, 입력)
  • hanseonc_high 컴파일: 19037 cubes 성공
  • crownyc run: 네이티브+웹 모드 모두 정상 실행
  • crowny-wasm: 113KB WASM 바이너리 생성 성공
  • HTML 출력: 3.8KB (디자인표준 CSS 변수 포함)

파이프라인

한선씨(.한선) → hanseonc_high → .toau → crownyc run     (네이티브)
한선씨(.한선) → hanseonc_high → .toau → crowny-wasm     (웹/WASM)
                                      → crowny-dom-host.js (브라우저 바인딩)

관련 파일

파일변경
CrownyOS/crownyc/hanseonc_std.asm31 웹 키워드 + 메모리 레이아웃
CrownyOS/crownyc/wasm_emit.cDOM import 10개 + 버퍼 확장
CrownyOS/crownyc/hanseonc_high.cDOM 별칭 5개
CrownyOS/crownyc/crownyc.cASM_MAX 16384
CrownyOS/crownyc/libs/웹코드.한선통합 UI 프레임워크 (420줄)
CrownyOS/crownyc/apps/웹코드예제.한선대시보드 데모

잔여 이슈

  • WASM 문자열 핸들 → JS 문자열 변환이 스텁 처리 (crowny-dom-host.js의 readString)
  • 이벤트 루프 (네이티브 모드) 미구현 — 정적 렌더링만 가능
  • 반응형 레이아웃은 CSS 미디어쿼리 (웹) vs 수동 분기 (네이티브)