편집연산.한선 — 텍스트 내 '|' 문자 이스케이프 보강
개요
/Users/ef/crowny-word/도구/편집연산.한선의 연산 레코드(
"삽입|행|열|텍스트" /
"삭제|시작행|시작열|끝행|끝열|텍스트")가
텍스트 필드 안에 구분자
|가 들어오면
분리파이프가 잘못 분해하는 문제(파일 주석에 "범위 밖"으로 명기돼 있던 사양 갭)를 보강했다.
무엇을 했는지
레코드이스케이프(s) / 레코드역이스케이프(s) 함수 추가.
- 규약:
~를 이스케이프 문자로 사용.
| →
~1,
~ →
~2. 문자 단위 순회로 정확히 왕복(역변환) 가능.
연산만들기삽입 / 연산만들기삭제에서 직렬화 시 텍스트 필드를 레코드이스케이프로 보강.
연산적용 / 연산역에서 분리파이프 파싱 후 텍스트 필드를 레코드역이스케이프로 복원.
-
연산역은 역이스케이프된 원문 텍스트로 길이(
글자수)를 계산해 새 연산을 만들기 때문에, 이스케이프된 문자열 길이가 아니라 원문 길이 기준으로 정확히 동작.
- 기존 자체시험 23개(T1~T15) 전부 유지 +
|/~ 포함 텍스트 왕복 assert 7개(T16~T22) 추가 — 총 30개.
- T16/T17: 이스케이프 단건 변환(파이프/물결)
- T18: 이스케이프→역이스케이프 왕복(혼합 문자)
- T19/T20: 연산적용(삽입) 결과에 파이프/물결 텍스트가 원문 그대로 삽입되는지
- T21/T22: 삽입/삭제 각각 연산역 왕복(파이프+물결 혼합 텍스트)까지 버퍼 동일성 검증
결과
- 컴파일:
./hanseonc_high 편집연산.한선 > /tmp/편집연산.toau — 성공(7453 큐브)
- 실행:
./crownyc run /tmp/편집연산.toau — PASS 30/30 (회귀 없음, 이전 23/23 전부 유지)
관련 파일
/Users/ef/crowny-word/도구/편집연산.한선
크라우니코드 학습
- lookup 사전조회: "이스케이프" 검색 → HIT:학습DB (JSON/네이티브/템플릿 이스케이프 기존 패턴, 문자단위 순회 스타일 확인 후 동일 스타일로 작성)
- learn add:
레코드이스케이프_파이프물결치환 등록 (별칭: 레코드이스케이프)
잔여 이슈
- 다중행(개행이 걸치는) 삽입/삭제는 이번 파일 범위 밖으로 여전히 미지원(파일 주석에 명시, 별도 처리 필요).
연산적용의 삭제 분기는 텍스트 필드를 버퍼 조작에 쓰지 않으므로 역이스케이프 불필요 상태 유지(연산역에서만 사용).