[[構文解析の記事一覧]]

*目次 [#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


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS