ANTLRANTLRを使い始める


備考

ANTLR(他の言語認識ツール)は、構造化テキストやバイナリファイルの読み取り、処理、実行、または翻訳を行うための強力なパーサージェネレータです。言語、ツール、フレームワークの構築に広く使われています。文法から、ANTLRは解析木を構築して歩くことができる構文解析器を生成する。

Antlrのバージョン
Antlrは、ターゲット言語に基づく文法から派生した文法(文法ファイル)と生成されたコードファイルの2つの大きな部分に分かれています。 antlrのバージョンはV1.V2.V3の形式です:

  • V1:V1の変化は、文法ファイルに新しい機能の構文が導入されたことを意味します
  • V2:V2の変更は、新しい機能や大きな修正が生成されたファイルに導入されたことを意味します(たとえば、新しい機能の追加など)
  • V3:バグの修正や軽微な改善を意味する

ランタイムライブラリとコード生成ターゲット
AntlrツールはJavaで書かれていますが、さまざまな言語のパーサーやレクサーを生成することができます。パーサーとレクサーを実行するには、antlrのランタイムライブラリとパーサーとレクサーコードを一緒に持つ必要があります。サポートされているターゲット言語(およびランタイムライブラリ)は次のとおりです。

  • Java

  • C#

  • Python(2と3)

  • JavaScript

バージョン

バージョン発売日
2.0 1997-05-01
3.0 2011-01-19
4.0 2013-01-21
4.1 2013-07-01
4.2 2014-02-05
4.2.1 2014-03-25
4.2.2 2014-04-07
4.3 2014-06-19
4.4 2014-07-16
4.5 2015-01-23
4.5.1 2016-07-16
4.5.2 2016-01-30
4.5.3 2016-03-31
4.6 2016年12月15日
4.7 2017-03-30

こんにちは世界

単純なhello worldの文法がここにあります

// define a grammar called Hello
grammar Hello;
r   : 'hello' ID;
ID  : [a-z]+ ;
WS  : [ \t\r\n]+ -> skip ;
 

この.g4サンプルをビルドするには、オペレーティングシステムのターミナル/コマンドラインから次のコマンドを実行します。

Java -jar antlr-4.5.3-complete.jar Hello.g4

//OR if you have setup an alias or use the recommended batch file

antlr4 Hello.g4
 

この例を作成すると、Hello.g4ファイルディレクトリに次のような出力が表示されます。

  1. Hello.tokens
  2. HelloBaseListener.java
  3. HelloLexer.java
  4. HelloLexer.tokens
  5. HelloListener.java
  6. HelloParser.java

これらのファイルを自分のプロジェクトで使用する場合は、必ずANTLR jarファイルをインクルードしてください。 Javaを使用してこれらのファイルをすべてコンパイルするには、同じ操作ディレクトリまたはパスで次のコマンドを実行します。

javac *.java