コンパイラ〜つく〜ろ〜♪2番 JavaCCの導入
今回は
「トークンの作成」に関する内容として
JavaCCについて、導入をしつつまとめていきます。
JavaCCとは
Javaベースのコンパイラ・コンパイラのこと。
コンパイラ・コンパイラとは、構文解析ルーチンと字句解析ルーチンを作成するツールのこと。
つまり、コンパイラを作るために使うツールですね。
これらのルーチンを作成するツールとして有名なのが
「yacc」や「lex」ですが、こちらを採用しなかったのは
生成するコードがJavaコードなので、C言語を混ぜずに進めるためという理由です。
拡張性とか考えたらyaccを使うほうがいいのかな?
その部分は自分の理解が足りていません。
今回から追加された、参考書籍はこちら
- 作者: 五月女健治
- 出版社/メーカー: テクノプレス
- 発売日: 2003/10
- メディア: 単行本
- 購入: 1人 クリック: 9回
- この商品を含むブログ (20件) を見る
ふつうのコンパイラをつくろう 言語処理系をつくりながら学ぶコンパイルと実行環境の仕組み
- 作者: 青木峰郎
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2009/07/24
- メディア: 単行本
- 購入: 25人 クリック: 398回
- この商品を含むブログ (48件) を見る
1.Macへの導入手順
導入に際して、こちらを参考にさせていただきました。qiita.com
JavaCCを管理しているサイトから直接ダウンロード可能です。
JavaCC Home
ダウンロード・展開が終了したら、以下コマンドを実行していきます。
$ cd Downloads/javacc-6.0 $ cp bin/lib/javacc.jar /usr/local/javacc/lib $ sudo mkdir /usr/local/javacc/bin $ sudo touch /usr/local/javacc/bin/javacc $ sudo chmod u+x /usr/local/javacc/bin/javacc $ ln -s /usr/local/javacc/bin/javacc /usr/local/bin/javacc
シェルにパスを追加
.zshrc
export PATH="/usr/local/javacc/bin/javacc” #追加
最後にスクリプトファイルの中身を追加して終了です。
/usr/local/bin/javacc
cmd_path="$(readlink -n $0)" javacc_root="$(dirname "$(dirname "$cmd_path")")" CLASSPATH="$javacc_root/lib/javacc.jar" export CLASSPATH java javacc "$@"