下向き構文解析法(再帰下降構文解析)を用いたC言語実装のコンパイラ
大学の授業や自習でコンパイラの仕組みを学ぶために実装したコンパイラです。PL/0 系の独自言語を対象とし、字句解析・構文解析・シンボルテーブル管理の基本的な処理を C 言語で実装しています。
- 言語: C
- ビルドツール: GCC
- ソースファイルの読み込み・字句解析(トークナイズ)
- 下向き構文解析(再帰下降法)によるコンパイル処理
- シンボルテーブル管理(変数・定数・関数・パラメータ)
- スコープ(ブロック)のネスト対応
- エラー検出と診断メッセージ出力
対象言語の予約語: begin, end, if, then, while, do, return, func, var, const, odd, write, writeln
gcc -o myComp main.c getSource.c compile.c table.c./myComp実行するとファイル名の入力を求められるので、コンパイル対象のソースファイル名を入力してください。
ファイル名を入力してください
> sample.pl0
コンパイル開始
==== コンパイル処理完了 ====
コンパイル成功
| ファイル | 役割 |
|---|---|
main.c |
エントリーポイント。ファイル名を受け取りコンパイル処理を呼び出す |
getSource.c/h |
字句解析器。ソースファイルをトークン列に変換する |
compile.c/h |
構文解析器。トークン列を下向き解析でコンパイルする |
table.c/h |
シンボルテーブル。変数・関数の名前とアドレスを管理する |
学習目的の実装 / 開発停止
コンパイラの基本的な構造(字句解析・構文解析・シンボルテーブル管理)を学ぶために作成したもので、コード生成フェーズは未実装です。授業・学習用のリポジトリとして保存されています。