← 목록
기타 2026-07-12 3KB 읽기 3분

크라우니워드프로세서 — 자동교정.한선

개요

크라우니워드프로세서 기초도구 시리즈의 "자동교정" 도메인을 완전 한선씨(hanseonc_high)로 작성. 임포트 없이 자기완결.

무엇을 했는지

  • /Users/ef/crowny-word/도구/자동교정.한선 작성 (16개 공개 함수 + 보조 헬퍼).
  • 교정테이블기본/교정추가/교정제거/교정조회 — 평면 배열 [키0,값0,키1,값1,...] 기반 테이블(맵 미사용, 길이(맵) 항상 0 함정 회피). 교정추가는 기존 키면 설정(arr,i,v)로 덮어쓰기, 신규면 append.
  • 단어끝교정 — 텍스트 끝(또는 트레일링 구분자 앞)의 직전 단어를 추출해 테이블 조회 후 교정.
  • 문장첫대문자 — 문장부호(./!/?) 이후 다음 알파벳 소문자를 대문자화(공백은 대기 유지, 이미 대문자/한글은 대기 해제).
  • 스마트따옴표 — "/'를 홀짝 카운터로 여는/닫는 굽은따옴표(U+2018~201D)로 치환.
  • 스마트대시 — -- → 엠대시(U+2014).
  • URL감지/이메일감지 — [시작,끝] 범위쌍 평면배열 반환(스캔 기반, http/https/www., local@domain.tld 휴리스틱).
  • 이중공백정리 — 연속 스페이스만 축약(탭/개행 불변).
  • 교정로그추가/조회, 직전교정취소(로그 최근 항목으로 원복), 로그마지막제거(보조) — 로그 항목 "원본|교정|위치" 문자열 직렬화.
  • 교정테이블직렬화/역직렬화 — "키=>값" 줄바꿈 구분 포맷.
  • 검색치환.한선에서 매치있나/검색첫/치환전부/소문자화 헬퍼를 이식(복사+적응)해 재사용.

검증

cd /Users/ef/CrownyOS/crownyc
./hanseonc_high /Users/ef/crowny-word/도구/자동교정.한선 > /tmp/자동교정.toau 2>/tmp/자동교정.err
./crownyc run /tmp/자동교정.toau
결과: 검사: PASS 28/28 (자체 assert 28건, 1회 컴파일에 전부 통과).

크라우니코드: lookup/search "자동교정"·"스마트따옴표" 2회 조회 MISS(학습DB 미보유) / 직접 생성 16개 함수(+보조) / learn add 3건(스마트따옴표·단어끝교정·교정추가덮어쓰기).

관련 파일

  • /Users/ef/crowny-word/도구/자동교정.한선 (신규)
  • 이식 원본: /Users/ef/crowny-word/도구/검색치환.한선

잔여 이슈

  • URL/이메일 감지는 단순 휴리스틱(공백 종료 기준) — 문장부호 트레일링(.,,,))이 URL 끝에 붙는 경우 미분리.
  • 스마트따옴표는 컨텍스트(앞뒤 공백) 대신 홀짝 카운터 방식 — 텍스트 중간에 따옴표가 열림 상태로 끊기면(홀수개) 이후 문서 전체가 뒤바뀔 수 있음.
  • 교정로그/테이블 직렬화는 값에 |, =>, \n이 없다고 가정(이스케이프 미구현) — 명세 범위 내 단순 구분자 방식으로 처리.