Janglim 매뉴얼에 오신 걸 환영합니다
Janglim은 .NET용 LR/LALR 파서 생성기입니다.
말이 어렵죠?
괜찮아요.
이 매뉴얼은
어려운 용어를 모른다는 전제에서, 처음부터 차근차근 풀어갈 거예요.
이 매뉴얼은 누구를 위한 건가요?
파서가 뭔지, 컴파일러가 어떻게 도는지 하나도 몰라도 괜찮습니다.
이 매뉴얼은 "왜 이게
필요한지"부터 차근차근, 최대한 쉬운 말로 설명해요.
그래서 다 읽고 나면 두 가지가 손에 남습니다.
- 파싱이라는 개념 자체 — 다른 어떤 파서를 쓰든 오래 활용할 수 있는 기초 지식
- Janglim이라는 파서 생성기 — 그리고 (원하면) 그 안이 코드로 어떻게 만들어졌는지까지
이 매뉴얼은 두 갈래예요
부담을 줄이려고 기본 / 심화 두 과정으로 나눴어요.
🟢 기본 과정 — 개념만 편하게.
공식도 코드도 없이, 개념과 직관 만 잡습니다.
각 페이지는:
| 단계 | 무엇을 |
|---|---|
| ① 왜 필요한가 | 이게 없으면 뭐가 안 되는지 (문제부터) |
| ② 무엇을 하는가 | 개념 자체 + 작은 예시 |
| ③ 플레이그라운드에서 보기 | 브라우저에서 직접 돌려보며 확인 |
🔵 심화 과정 — 공식 + 코드.
같은 개념을 어떤 문법에나 통하는 공식(알고리즘) 으로 정리하고,
그게 Janglim 코드에서 어떻게 구현됐는지까지 봅니다.
기본 과정의 각 개념 끝에 "→ 심화로"
링크를 달아둘게요.
처음이라면 기본 과정만 쭉 읽으세요.
심화는 나중에 궁금해질 때 봐도 충분해요. 🙂
하나의 예제로 끝까지 갑니다
매뉴얼은 이 작은 문법 하나를 주로 계속 씁니다 — 덧셈·곱셈이 있는 작은 산술식이에요.
Expr : Expr '+' Term | Term ; Term : Term '*' Factor | Factor ; Factor : '(' Expr ')' | id ; id := "[a-zA-Z]+" ;
그리고 이 입력을 계속 파싱해요: a + a * a
매 챕터가 이 같은 예제에 이해를 한 겹씩 더해 나가요.
가끔 이 문법으로는 못 보여주는 개념(예: ε, 충돌)이 나오면, 그 자리에서 작은 보조 문법 을 통째로 따로 보여줘요.
(이 문법을 읽는 법은 처음 나올 때
같이 천천히 뜯어볼 거니까 미리 걱정 안 해도 돼요.)
자, 시작할까요?
- 👉 빠른 시작 — 설치하고, 5줄로 첫 파싱을 돌려봅니다.
- 🌿 라이브 플레이그라운드 — 설치 없이 브라우저에서 바로.
참고: Janglim은 아직 초기 프리뷰(
0.2.0-preview) 예요.
공개 API는0.x동안 바뀔 수 있어요.
감사의 말
이 프로젝트의 골격을 세우는 데 큰 도움을 주신 분들께 깊은 감사를 전합니다.
- 『컴파일러 입문』의 저자 오세만 · 손윤식 님 — 이 책으로 컴파일러의 기초를 배웠습니다.
- Actipro Software — 그들의 LL 파서 명세 방식에서 영감을 받아, EBNF를 코드로 쓰는 문법 정의 구조를 완성했습니다.
- Claude · Codex — 코드 검토와 문서 작성 과정에서 도움을 주었습니다.
진심으로 감사드립니다. 🙏