crowny-rpnkit — 한선씨 RPN 숙련 도구 제작
개요
클로드(모든 세션)가 한선씨 RPN(hanseonc_rpn 실용 방언)으로 능숙하게 코딩하도록 하는 숙련 도구 4종을 제작·전량 라이브 검증했다./Users/ef/crowny-rpnkit/무엇을 했는지
- 코어/키워드.dat —
hanseonc_rpn.c의 실제 키워드→opcode 테이블(133~294줄)만 정확히
.rpn.한선/.한선 같은
비-키워드 문자열 오염을 제거. 구조토큰(끝·참·거짓·모름·그리고·또는·아닌·만약·
아니면점프·점프·호출·반환·입력·배열) 전부 존재 확인. "가"(무조건점프)는
hanseonc_rpn에 없음을 실측 확인(std 전용 — bare 라벨 호출도 std만 허용, RPN은
@라벨 필수) — 키워드.dat에서 의도적으로 제외.- 코어/rpn린트.rpn.한선 — RPN 정본으로 직접 작성한 린트 코어.
/tmp/rpnlint_in.txt
/tmp/rpnlint_kw.txt(키워드 목록)를 읽어 3규칙 검사:
미정의라벨 참조, 미지단어(조용한0), 끝없음. hanseonc_rpn으로 컴파일 통과(경고 0건).- rpn숙련.sh — 사용법/검사/채점/드릴/학습/현황 6개 서브커맨드. 검사는 전처리
폴백|bash 표기.- 드릴/드릴덱.psv — 9급→7급→5급→3급→1급 15문제, 전부 실컴파일+실행으로
라이브 검증 결과 (완료기준 5항목 전부)
rpn숙련.sh 검사 lint_ok.rpn.한선(정상) →판정|티|통과PASS- 오타 파일(
더헤) →위반|미지단어(조용한0)|더헤정상 검출 PASS rpn숙련.sh 드릴 2정상 출력(문제/기대출력/채점커맨드) PASS- 드릴덱 15문제 전부
채점PASS(스크립트 루프 실증, 9급3+7급3+5급3+3급3+1급3) 코어/rpn린트.rpn.한선이hanseonc_rpn으로 경고 0건 컴파일 PASS
제작 중 발견한 신규 VM 함정 (메모리+가드레일 동시 갱신)
- hanseonc_rpn 함수호출은
@라벨 호출만 인정(bare 라벨명은 미지단어) — std(자기호스팅)는
.rpn.한선은 항상 @함수 호출.
글자(s,i)는 hanseonc_rpn에서 코드포인트(정수) 반환(1글자 문자열 아님, opcode343=
큐브생성키워드가 opcode751(HASH_HAS=맵있나)로 오배선 — hanseonc_rpn엔 "맵있나"
맵꺼내(m,키)==1 패턴 권장.
- "아니면점프"(거짓시 점프)로 if/then 위반로직 짤 때 극히 잘 뒤집힌다 — TRUE시 실행할
아니면점프로 스킵점프 만들거나, 만약(참이면
점프, RPN 전용)을 쓸 것. 이번 작업에서 3회 실측 재발(저장분기·라벨검사·끝검사).메모리: feedback_hanseonc_rpn_라벨호출_글자코드값_큐브생성맵있나.md
가드레일: ~/.claude/templates/한선씨-가드레일.md(hanseonc_rpn 함정 섹션 신설)
관련 파일
/Users/ef/crowny-rpnkit/코어/키워드.dat(373 키워드)/Users/ef/crowny-rpnkit/코어/rpn린트.rpn.한선/.toau/Users/ef/crowny-rpnkit/rpn숙련.sh/Users/ef/crowny-rpnkit/드릴/드릴덱.psv(15문제)/Users/ef/crowny-rpnkit/RPN사용법.md(기존 SSOT, 미변경) /README.md(기존)
크라우니코드 프로토콜
- lookup/search "RPN 린트", "hanseonc_rpn 라벨" → MISS(신규 로직 확인 후 생성)
- learn add "rpn린트코어_라벨미지단어검사" (린트 코어 전문 등록, 별칭 rpn린트코어)
- 보고: lookup MISS 2건 / 생성 1건(린트 코어) / learn 추가 1건
잔여 이슈
- 코어/rpn린트.rpn.한선의 숫자 리터럴 판정은 "첫글자 '-' 또는 0-9"만 보는 단순화
- 폴백 bash 린트는 perl 기반(과제 문구는 "grep/awk"였으나 UTF-8 다국어 안전성 위해 perl 선택,
- 큐브생성=맵있나 오배선은 다음 hanseonc_rpn.c 재빌드 때 "맵있나" 키워드 정식 추가 권장(미반영).