using ANTLR


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

記事を書いた日2008/06/07
記事を更新した日2008/12/06

ANTLRを使う

使うというか、導入というか。
試行錯誤しているので、若干の抜けはあるかもしれません。
導入する環境は
Linux 2.6.18
Debian Etch
です。
ANTLRとはこちら

はじめに

JDKが必要です。JDKのインストールについては省きます。
頑張ってください。

g++

g++が必要です。インストールしてください。
sudo aptitude install g++
など。

そのほか必要かもしれないもの

インストールしておくと作業がはかどるかもしれません。括弧内のコマンドを使用しています。
automake(aclocalのため),mercurial(hgのため),byacc(yaccのため),flex(flexのため)

ANTLR-v3.0.1

最新バージョンです。現在は検索するとこれが一番上に出てくるでしょう。
2.7.7とは若干文法が変わっています。

ダウンロード

まずはダウンロードです。
こちらからダウンロードします。

解凍

階等します。解凍する場所はどこでもかまいません。ここでは/hoge/で解凍を行います。
tar xvzf antlr-3.0.tar.gz

/hoge/antlr-3.0/lib$ ls
C  CSharp  ObjC  Python  Ruby  antlr-2.7.7.jar  antlr-3.0.jar  antlr-runtime-3.0.jar  stringtemplate-3.0.jar
これらの.jarファイルがANTLRの大事な部分です。

導入

クラスパスを通します。LinuxでBashを使っている場合は以下を追加してください。
export ANTLR=/hoge/antlr-3.0.1/lib
export CLASSPATH=$CLASSPATH:$ANTLR/antlr-3.0.1.jar:$ANTLR/stringtemplate-3.1b1.jar:$ANTLR/antlr-runtime-3.0.1.jar:$ANTLR/antlr-2.7.7.jar
これで導入は終わりです。

テスト

ターミナルを再起動して
java o
ここまで打って、TABを押して
java org.antlr.
みたいに補間されれば大丈夫です。

ANTLR-v2.7.7

ダウンロード

一つ前のバージョン
ダウンロードしてきます。
こちらからどうぞ。

解凍

解凍します。解凍する場所を/hoge/とします。
2.7.7系は
make install
でインストールします。

コンフィギュア

解凍したディレクトリには
#ls
CHANGES.txt  INSTALL.txt  LICENSE.txt  Makefile  Makefile.in  README.txt  aclocal.m4  
antlr  antlr.jar  config.log  config.status  configure  configure.in  
doc  examples  extras  lib  scripts
↑のような中身になっています。
このconfigureスクリプトを実行してから、make installを実行するとインストール作業が行われます。
./configure --prefix=/usr/local/
このようにコンフィギュアスクリプトを実行すると、/usr/local/bin以下にantlrバイナリがインストールされるように設定が行われます。

インストール

コンフィグを行った後、
make test
問題がなければ
make install
を実行します。

testで問題が出た場合、testをせずにインストールすることができます。
テストがなんらかの理由で失敗するときには、こちらをためすといいかもしれません。
./configure --disable-example --prefix=/usr/local/
make install


CLASSPATH

クラスパスを通します。
/hoge/antlr-2.7.7/にantlr.jarがあるので、それをクラスパスに追加します。
bashrcに以下の行を追加します。
export CLASSPATH = $CLASSPATH:/hoge/antlr-2.7.7/antlr.jar

その後

あとはサンプルファイルをダウンロードしてきて使ってみてください。
java antlr.Tool hogefile
2.7.7はorg.antlr.Toolではありません。

困ったときは

README.txtをよみましょう。
なにかわかるかもしれません。


いっぱいエラーと格闘しました。
ツールボックス

下から選んでください:

新しいページを作成する
ヘルプ / FAQ もご覧ください。