피드로 돌아가기
Cx Dev Log — 2026-06-28
Dev.toDev.to
Backend

Cx 언어 전 계층 Labeled break/continue 구현 및 테스트 통과 292건 달성

Cx Dev Log — 2026-06-28

COMMENTERTHE92026년 6월 29일2advanced

Context

기존 Cx 언어 스택의 루프 제어 구조 내 외부 루프 점프로의 확장성 부재 해결 필요. 특히 Lexer 단계에서 Character Literal과 Label 간의 구문 모호성 제거가 핵심 과제였던 상황.

Technical Solution

  • Longest-match 원칙 기반의 Lexer 규칙 설계를 통한 'x(LiteralChar)와 'label(Label)의 명확한 구분
  • Frontend 기반 작업과 Backend 실행 로직을 분리한 2단계 Commit 전략으로 시스템 안정성 확보
  • BreakSignal 및 ContinueSignal에 Label 필드를 추가하여 Interpreter 내 동적 루프 매칭 구조 설계
  • JIT LoopContext 내 Label 필드 도입 및 Stack 기반 추적을 통한 정확한 Jump 지점 정밀 타격
  • t_char_literal_guard 등 전용 Test Fixture 도입을 통한 Lexer 정규식 무결성 검증 체계 구축

1. 구문 분석 시 유사한 패턴의 토큰은 Longest-match 전략을 적용해 모호성을 제거했는가?

2. 복잡한 언어 기능 추가 시 Frontend(Semantic check)와 Backend(Execution) 구현을 분리하여 리스크를 관리했는가?

3. Stack 기반 Context 관리를 통해 중첩 구조 내 정확한 식별자 매핑을 구현했는가?

원문 읽기