- 追加された行はこの色です。
- 削除された行はこの色です。
*目次 [#m3639e2d]
#contents
*趣旨 [#sc0ae109]
ANATLRについて学んだことをまとめてみる。
サンプルコードをもとに、使い方を逆引き的にまとめる
休日にちょこっとやってみてるだけなので、飽きたらやめる
*インストール [#s9fb2dcf]
**ダウンロード [#se5b5826]
***URL [#p8e605ab]
http://www.antlr.org/download.html
***ダウンロード対象ファイル [#gdc6c98e]
ANTLRWorks+ANTLR
ANTLR v3
*日本語のチュートリアル的サイト [#t1578c8e]
http://d.hatena.ne.jp/inabatch/20080123/1201099466
*拡張子 [#o8bd9085]
拡張子は.g
*サンプルコード [#hd6a2adf]
ファイル名がT1だとすると、
grammar T1;
と記入しなくてはならない。
*パターンマッチの書き方 [#laae5c33]
**末尾は;で終了させる。 [#b1e181a2]
**正規表現と違うのは、パターンマッチを変数として扱うことができる [#j273372b]
**単純な文字列はシングルクォートで括ることができる。 [#s07ef55a]
*マッチした文字列を出力するには [#vf9bd121]
$変数名.textで置き換えることができる。
*無視したい文字列の場合には [#pc5271fb]
{$channel=HIDDEN;}
**例 [#afb7fd3f]
grammar T1;
r : 'call' ID ';' {System.out.println("invoke "+$ID.text);};
ID : 'a'..'z'+;
WS : (' '|'\n'|'\r')+ {$channel=HIDDEN;};
*参考書籍 [#h64cf61c]
The Definitive ANTLR Reference
ISBN-10 0-9787392-5-6
ISBN-13 978-0-9787392-5-6
*Stringtemplate [#pe1e67f4]
http://www.stringtemplate.org/
ソースコード生成用のテンプレートである。
*MACの日本語環境構築 [#ca9b5cfc]
MacOS XのTerminalの標準文字コードはUTF-8。さらに、OSのフォルダなどの名前に使われているのもUTF-8。
そのため、通常のアプリケーション等は、MacOS9の頃のJISコードを使うので、Javacを使うと、Terminalで利用中は、文字化けをする。
そこで、javacをする際に、"-J-Dfile.encoding=UTF8"のオプションを付けてあげれば、問題は解決。
毎回付けるのが面倒だと言う方は、aliasに
alias javac="javac -J-Dfile.encoding=UTF8"
を追加しておく。
**NKFを導入する [#j69dec8e]
このさいだから文字コード変換用に入れておく。
いれなくてもよい。
***Homepage [#ifb3b9d2]
http://nkf.sourceforge.jp/
***Source [#i952a352]
https://sourceforge.jp/projects/nkf/
***インストール手順 [#i617943f]
参考
http://blog.marimo-net.org/item/614
$make
$make perl
$sudo mkdir /usr/local/bin
$sudo cp nkf /usr/local/bin
$cd NKF.mod
$perl Makefile.PL
$make
$make test
$sudo make install