2011-12-03 19 views
3

私はANTLRをパーサージェネレータとして選んだ、かなり標準的なコンパイラプロジェクトに取り組んでいます。既存の文法をv2からv3に更新している間に、ANTLRの正式なIDEであるANTLRWorksが拡張ASCII文字を適切に表示していないことに気付きました。メモ帳++を使用してASCIIからUTF8にファイルを変換した後も、これらの文字は四角形として表示されます。メモ帳で+ +彼らは正常に表示されます。ANTLRWorks 1.4.3で拡張ASCII文字を正しく読み込めません

この不具合は、ANTLRWorksがファイルを保存するときにそれを嫌うので、エディターとして使用できなくなります。これはむしろ迷惑です。ここに他の誰かがこの問題に遭遇したのでしょうか?とても感謝しております。

[編集]:特定の問題は(昨日それをダウンロード)ANTLRWorksの最新バージョンで発生し、私はhttp://www.antlr.org/grammar/1086696923011/vhdlams/index.html

答えて

2

からもらったvams.g文法ファイルで、私はANTLRWorks 1.4.3でこれを再現することはできません。

私はダミーの文法作成する場合:

grammar T; 
parse : . ; 
Any : . ; 

を、マルチラインのコメントで、完全な拡張ASCIIセットを貼り付けます。何の問題もありません

grammar T; 

/* 
€ 

‚ 
ƒ 

... 

ÿ 
*/ 

parse : . ; 
Any : . ; 

。 ANTLRWorksで文字をコピーするか、通常のエディタで文字をコピーしてANTLRWorksで既存の文法を編集するかどうかは関係ありません。文字はANTLRWorks内に保存した後も同じままです。

関連する注:ANTLR 3.0〜3.3のバージョンは、ANTLR 2.7クラスといくつかの依存関係があり、org.antlr.ToolがASCIIセット外の特定の文字に移動する可能性があります。そのような古い依存関係をもはや持たないANTLR 3.4を使用してください。

EDIT

私はすべての騒乱を引き起こしている、元の文法のどこかでいくつかの奇妙なバイトがあります疑い。私はすぐに元の文法のルールだけをコピーし、すべてのv2.7構文をv3構文に変更しました(protectedfragmentになり、いくつかのカスタムコードをコメントにしました)、新しいファイルに保存しました。このファイルは、ANTLRWorksまたはプレーン・テキスト・エディターによって、拡張ASCII文字をマングルさせることなくオープン(および保存)することができます。ここで

のANTLR v3のバージョンである文法は言った:http://pastebin.com/zU4xcvXt(文法はSOに投稿するためには大きすぎる...)

EDIT II

がちょうど越えて何のために有用な文法名ですそれにラベルを付ける?

いいえ、そうではありません。あなたが言及したように、それは単にパーサまたはレクサーに名前を付けるために使用されます。

ANTLRにおける文法の4種類があります

  • TLexer.javaTParser.javaソースファイルを生成し、grammar T;のように見える組み合わせ文法は、。
  • パーサ文法。parser grammar TP;のように見え、TP.javaソースファイルを生成する。
  • レクサー文法lexer grammar TL;のように見え、TL.javaソースファイルを生成する。
  • ツリー文法。tree grammar TWalkerのように見え、TWalker.javaソースファイルを生成します。
+1

私は修正している特定の文法ファイルへのリンクを追加する質問を編集しました。問題を再現しようとしてください:) – MayaPosch

+0

@MayaPosch、はい、そのファイルは、あなたが記述したものを再現します。奇妙な...私は明日(もしその時間の前に質問に答えられていなければ)それを詳しく見ていきます。 –

+0

@MayaPosch、私はそれを休みさせることができませんでした...私のEDITを見てください。 –

関連する問題