構文解析の記事一覧

目次

趣旨

ANATLRについて学んだことをまとめてみる。

サンプルコードをもとに、使い方を逆引き的にまとめる

休日にちょこっとやってみてるだけなので、飽きたらやめる

インストール

ダウンロード

URL

http://www.antlr.org/download.html

ダウンロード対象ファイル

ANTLRWorks+ANTLR

ANTLR v3

日本語のチュートリアル的サイト

http://d.hatena.ne.jp/inabatch/20080123/1201099466

だったんだけど、プライベートモードになっていてみれなくなっていた。

内容は、英語の書籍の最初の解説と同じような感じだったはずである。

拡張子

拡張子は.g

サンプルコード

ファイル名がT1だとすると、

grammar T1;

と記入しなくてはならない。

パターンマッチの書き方

末尾は;で終了させる。

正規表現と違うのは、パターンマッチを変数として扱うことができる

単純な文字列はシングルクォートで括ることができる。

マッチした文字列を出力するには

$変数名.textで置き換えることができる。

無視したい文字列の場合には

{$channel=HIDDEN;}

grammar T1;
r	:	'call' ID ';' {System.out.println("invoke "+$ID.text);};
ID      :	'a'..'z'+;
WS	:	(' '|'\n'|'\r')+  {$channel=HIDDEN;};

参考書籍

The Definitive ANTLR Reference ISBN-10 0-9787392-5-6 ISBN-13 978-0-9787392-5-6

Stringtemplate

http://www.stringtemplate.org/

ソースコード生成用のテンプレートである。

MACの日本語環境構築

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を導入する

このさいだから文字コード変換用に入れておく。

いれなくてもよい。

Homepage

http://nkf.sourceforge.jp/

Source

https://sourceforge.jp/projects/nkf/

インストール手順

参考

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
Last-modified: 2011-01-30 (日) 22:18:09 (2673d)