ANTLR4 独学
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
*目次 [#qdd2518b]
#contents
*趣旨 [#ia584f6a]
寝る前に、眠くなるまで
つれづれなるままにANTLR4を独学する
*はじめに [#w690b0fa]
久しぶりに、ANTLRをやってみたくなった。
ANTLR3もくわしくわからなかったのだが、
ANTLR4では、ビジターにアクションを書くように思想が変わっ...
英語のわかる人は、是非このツールの使い方を翻訳していただ...
*目標 [#n3c729fb]
もう、寝る時間なので、四則演算のチュートリアルができたら...
*インストール [#zf49247e]
新しいのを入れてみようと思う。
今は、2014/04/30 です。
**URL [#ha074472]
http://www.antlr.org/download.html
下記のをダウンロードしてみました。
Complete ANTLR 4.2.2 Java binaries jar
*チュートリアル(Getting Started with ANTLR v4) [#q0621120]
次のステップということで
Getting Started with ANTLR v4
を見てみる。
アドレスは
https://theantlrguy.atlassian.net/wiki/display/ANTLR4/Get...
**だが断る [#o1dd46cf]
クラスパスに通すやり方が書いてあるが、コマンドラインベー...
自分はエクリプスを使ってやりたい。そんなお年頃。
クラスパスの設定は、エクリプスのビルドパスを通すってこと...
エイリアスの指定は、クラスをそのまま指定して、mainメソッ...
public static void main(String[] args) {
org.antlr.v4.Tool.main(args);
}
こんな感じでやることにする。
ANTLR Parser Generator Version 4.2.2
-o ___ specify output directory where all ...
-lib ___ specify location of grammars, token...
-atn generate rule augmented transition ...
-encoding ___ specify grammar file encoding; e.g....
-message-format ___ specify output style for messages i...
-long-messages show exception details when availab...
-listener generate parse tree listener (defau...
-no-listener don't generate parse tree listener
-visitor generate parse tree visitor
-no-visitor don't generate parse tree visitor (...
-package ___ specify a package/namespace for the...
-depend generate file dependencies
-D<option>=value set/override a grammar-level option
-Werror treat warnings as errors
-XdbgST launch StringTemplate visualizer on...
-XdbgSTWait wait for STViz to close before cont...
-Xforce-atn use the ATN simulator for all predi...
-Xlog dump lots of logging info to antlr-...
となった、オプションだらけじゃん。英語だし。
これをラップして設定メソッドに日本語のコメントを書いてお...
encodingオプションの例に、euc-jpとあるあたりが、日本への...
**Helloをやってみる [#j06e9215]
チュートリアルにつきものであるといっていい、Helloが用意さ...
これをやってみる。ことにする。
プロジェクト直下にresourceというフォルダを作って、
そこに
https://theantlrguy.atlassian.net/wiki/display/ANTLR4/Get...
にある
Hello.g4
を入れてみた。
それと、あとでわかるんだが、これを実行すると、ファイルが...
だからここではパッケージ名にantlr.サンプル名を作成するこ...
エクリプスでやるなら次のような感じで実行してみるといい。
public static void main(String[] args) {
String[] argList = {"./resource/Hello.g4","-o" ,"./s...
org.antlr.v4.Tool.main(argList);
}
実は、はじめ、チュートリアル通りにやってみようとおもって
String[] argList = {"./resource/Hello.g4"};
としていたんだ。
するとプロジェクト直下に、いろいろ吐き出してしまった。
出てきたソースコードにはパッケージ名も書いていない。
だから、出力先と、出力したファイルがすぐにエクリプスで編...
String[] argList = {"./resource/Hello.g4","-o" ,"./src/a...
としたんだ。
**パースさせてみる [#j476f375]
標準入力を使ってテストさせることができるようだ。
エクリプスからやるには、次のようにやればいいことがわかっ...
try {
String[] grunArgList = {"antlr.hello.Hello","r","-tr...
org.antlr.v4.runtime.misc.TestRig.main(grunArgList);
} catch (Exception e) {
e.printStackTrace();
}
チュートリアルはキーボード入力を使っているようだが、
gui表示のオプションを指定するとecllipseからは、ctrl + z ...
しらべてみたら、ファイルでの入力もできるようだ。
ソースコードの引数をみたからわかったんだ。
入力ファイルを ./resource/hello.txtに作った。
try {
String[] grunArgList = {"antlr.hello.Hello","r","-gui...
org.antlr.v4.runtime.misc.TestRig.main(grunArgList);
} catch (Exception e) {
e.printStackTrace();
}
これで、Helloのチュートリアルはこんな感じで終わり。
今日はこの辺でねるとする。
終了行:
*目次 [#qdd2518b]
#contents
*趣旨 [#ia584f6a]
寝る前に、眠くなるまで
つれづれなるままにANTLR4を独学する
*はじめに [#w690b0fa]
久しぶりに、ANTLRをやってみたくなった。
ANTLR3もくわしくわからなかったのだが、
ANTLR4では、ビジターにアクションを書くように思想が変わっ...
英語のわかる人は、是非このツールの使い方を翻訳していただ...
*目標 [#n3c729fb]
もう、寝る時間なので、四則演算のチュートリアルができたら...
*インストール [#zf49247e]
新しいのを入れてみようと思う。
今は、2014/04/30 です。
**URL [#ha074472]
http://www.antlr.org/download.html
下記のをダウンロードしてみました。
Complete ANTLR 4.2.2 Java binaries jar
*チュートリアル(Getting Started with ANTLR v4) [#q0621120]
次のステップということで
Getting Started with ANTLR v4
を見てみる。
アドレスは
https://theantlrguy.atlassian.net/wiki/display/ANTLR4/Get...
**だが断る [#o1dd46cf]
クラスパスに通すやり方が書いてあるが、コマンドラインベー...
自分はエクリプスを使ってやりたい。そんなお年頃。
クラスパスの設定は、エクリプスのビルドパスを通すってこと...
エイリアスの指定は、クラスをそのまま指定して、mainメソッ...
public static void main(String[] args) {
org.antlr.v4.Tool.main(args);
}
こんな感じでやることにする。
ANTLR Parser Generator Version 4.2.2
-o ___ specify output directory where all ...
-lib ___ specify location of grammars, token...
-atn generate rule augmented transition ...
-encoding ___ specify grammar file encoding; e.g....
-message-format ___ specify output style for messages i...
-long-messages show exception details when availab...
-listener generate parse tree listener (defau...
-no-listener don't generate parse tree listener
-visitor generate parse tree visitor
-no-visitor don't generate parse tree visitor (...
-package ___ specify a package/namespace for the...
-depend generate file dependencies
-D<option>=value set/override a grammar-level option
-Werror treat warnings as errors
-XdbgST launch StringTemplate visualizer on...
-XdbgSTWait wait for STViz to close before cont...
-Xforce-atn use the ATN simulator for all predi...
-Xlog dump lots of logging info to antlr-...
となった、オプションだらけじゃん。英語だし。
これをラップして設定メソッドに日本語のコメントを書いてお...
encodingオプションの例に、euc-jpとあるあたりが、日本への...
**Helloをやってみる [#j06e9215]
チュートリアルにつきものであるといっていい、Helloが用意さ...
これをやってみる。ことにする。
プロジェクト直下にresourceというフォルダを作って、
そこに
https://theantlrguy.atlassian.net/wiki/display/ANTLR4/Get...
にある
Hello.g4
を入れてみた。
それと、あとでわかるんだが、これを実行すると、ファイルが...
だからここではパッケージ名にantlr.サンプル名を作成するこ...
エクリプスでやるなら次のような感じで実行してみるといい。
public static void main(String[] args) {
String[] argList = {"./resource/Hello.g4","-o" ,"./s...
org.antlr.v4.Tool.main(argList);
}
実は、はじめ、チュートリアル通りにやってみようとおもって
String[] argList = {"./resource/Hello.g4"};
としていたんだ。
するとプロジェクト直下に、いろいろ吐き出してしまった。
出てきたソースコードにはパッケージ名も書いていない。
だから、出力先と、出力したファイルがすぐにエクリプスで編...
String[] argList = {"./resource/Hello.g4","-o" ,"./src/a...
としたんだ。
**パースさせてみる [#j476f375]
標準入力を使ってテストさせることができるようだ。
エクリプスからやるには、次のようにやればいいことがわかっ...
try {
String[] grunArgList = {"antlr.hello.Hello","r","-tr...
org.antlr.v4.runtime.misc.TestRig.main(grunArgList);
} catch (Exception e) {
e.printStackTrace();
}
チュートリアルはキーボード入力を使っているようだが、
gui表示のオプションを指定するとecllipseからは、ctrl + z ...
しらべてみたら、ファイルでの入力もできるようだ。
ソースコードの引数をみたからわかったんだ。
入力ファイルを ./resource/hello.txtに作った。
try {
String[] grunArgList = {"antlr.hello.Hello","r","-gui...
org.antlr.v4.runtime.misc.TestRig.main(grunArgList);
} catch (Exception e) {
e.printStackTrace();
}
これで、Helloのチュートリアルはこんな感じで終わり。
今日はこの辺でねるとする。
ページ名: