4

NuGetを使用してAntlrを機能させようとしています。

私が参照しようとしているAntlr.Runtime.dllの現在のバージョンは3.1.3.42154です。

問題は、LexerおよびParser .csファイルをビルドしようとすると、欠落しているタイプについて多くのビルドエラーが発生することです。

例:クラスGrammarRuleAttributeが見つかりません。Antlr.Runtime.dllを調べましたが、クラスがありません。ただし、GitHubでAntlrプロジェクトを見ると、GrammarRuleAttribute実際にAntlr.Runtime.dllにあるはずです。

これはバグですか、それとも何かが足りませんか?

4

2 に答える 2

4

ANTLR の C# ターゲット (Johannes Luber による CSharp2 と私自身による CSharp3) は時間の経過とともに変化するため、これはやや時間に敏感な Q/A です。CSharp2 ターゲットに最近取り組んでいるいくつかの問題があることは知っています。これを書いている時点で、CSharp3 ターゲットの現在のバージョンは 3.3.1 です。

CSharp3 ターゲット ドキュメントへのリンクは次のとおりです。これには、ANTLR ツールの C# ポートへのダウンロード リンク、CSharp3 ランタイム、MSBuild サポート、および Visual Studio 用のいくつかのツールが含まれています。新しいバージョンがリリースされると、このドキュメントを定期的に更新します。

編集:文法ファイルを開くときに表示の問題や例外メッセージが表示される場合は、拡張機能マネージャーから ANTLR 3、StringTemplate、および Extensibility Framework 拡張機能をアンインストールし、リンクされたドキュメントの指示に従って再インストールする必要があります。問題を解決するために拡張機能を更新しました。

于 2011-02-23T02:19:02.160 に答える
0

CSharp2 または CSharp3 を使用しているときにこの問題が発生しました。私はANTLRWorks 1.5rc1で構築しています。

ANTLR バージョンに関連していることが判明しました。3.1.x の NuGet を使用して公式パッケージをインストールしました。それを削除して非公式の 3.4.1 パッケージをインストールすると、機能しました。

テスト文法の HIDDEN チャネルに関連する小さな問題がまだありました。(Antlr3.Runtime で定義されているように) Hidden に変更すると、問題が解決しました

于 2012-12-13T00:58:05.117 に答える