1

文法ファイルは次のとおりです。

grammar fred;
test    :   'fred';

ツールを起動するためのバッチ ファイルは次のとおりです。

SET JAVA_HOME=C:\Program Files\Java\jdk1.6.0_24
SET PATH=%PATH%;%JAVA_HOME%\bin
SET ANTLR_HOME=c:/users/don/workspace/antlrAssign/lib/
java -cp %ANTLR_HOME%/antlr-3.3-complete.jar  antlr.Tool fred.g

結果は次のとおりです。

ANTLR Parser Generator   Version 2.7.7 (20060906)   1989-2005
fred.g:1:1: unexpected token: grammar
error: Token stream error reading grammar(s):
fred.g:3:19: expecting ''', found 'r'
fred.g:1:1: rule grammar trapped:
fred.g:1:1: unexpected token: grammar
TokenStreamException: expecting ''', found 'r'

以前の投稿では「org.antlr.Tool」を参照していますが、3.3 jar には上記の場所にあります。アイデアは、ツリー パーサーのデバッグ バージョンを作成することでした。ドキュメントによると、コマンド ライン ツールを使用する必要があります。

誰もこれを見たことがありますか?私は気が狂っていますか?それは 2 行の長さで、ファイルの最初の単語で死んでいます。

もちろん、これは antlrworks でコンパイルされます。

助けていただければ幸いです。薬をこれ以上調整する余裕はありません。

ファローアップ:

ANTLRWORKS で Run --> Debug メニュー オプションを使用すると、ツリー パーサーのデバッグ バージョンが生成されることがわかりましたが、私の手元にあるコマンド ライン ツールでは生成されません。生成されたデバッグ ソースは、生成用の出力フォルダーに存在します。ANTLRWORKS で非デバッグ バージョンを取得するには、Generate メニュー オプションを使用します。Eclipse でツリー パーサーのデバッグ バージョンを使用して、テスト ハーネスを起動して待機し、treegrammar パーサー ファイルで Run Remote Debug を介して ANTRWORKS に接続します。ツリーのパーサーを調べたところ、不一致のツリー ノード エラーが発生しました (パーサー エラーではなく、ツリー パーサーをデバッグしているので問題ありません)。だから今、私は自分がした他のばかげたことを見つける必要があります。HTH 私以外の誰か。

4

1 に答える 1

0

以前の投稿では「org.antlr.Tool」を参照していますが、3.3 jar には上記の場所にあります。

古い ANTLR 2.xToolクラス ( antlr.Tool) は ANTLR の 3.x バージョンにまだ含まれていますが、3.x 文法であるため、文法には ANTLR 3.x Tool(場所: ) を使用する必要があります。org.antlr.Tool

于 2011-03-20T07:53:33.573 に答える