ANTLRはもともとJavaのツールなので、C#で開発するにしてもJavaを使ったほうが良い場合もある。
ツリー構造を出力するのはその1例。
Javaでのツリー構造の出力方法
AntlrのサイトのQuick StartとSamplesの通り。
例
- 準備
- Quick Startに従い、jarファイルダウンロードと、antlr4.batとgrun.bat を作成
- g4ファイルをbatの下のcalcフォルダにコピー
- コマンドプロンプトでcalcフォルダから下記を実行
SET CLASSPATH=.;C:\lib\Java\antlr-4.8-complete.jar;%CLASSPATH%
..\antlr4 Calculator.g4
javac Calculator*.java
..\grun Calculator expression -gui
- 最後のコマンド実行後に数式を入力
- Enterを押す
- ctrl-Zを押す
- Enterを押す
- ツリー構造が表示される。
再度実行する場合は、最後のコマンドの実行から行う。
出力例
補足
grunのオプション
java org.antlr.v4.gui.TestRig GrammarName startRuleName
[-tokens] [-tree] [-gui] [-ps file.ps] [-encoding encodingname]
[-trace] [-diagnostics] [-SLL]
[input-filename(s)]
Use startRuleName='tokens' if GrammarName is a lexer grammar.
Omitting input-filename makes rig read from stdin.