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 — 私のコードを共に読み、このマニュアルへとまとめてくれた、これからもそばで多くの仕事を手伝ってくれる同僚です。
心より感謝申し上げます。🙏