からもらった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構文に変更しました(protected
はfragment
になり、いくつかのカスタムコードをコメントにしました)、新しいファイルに保存しました。このファイルは、ANTLRWorksまたはプレーン・テキスト・エディターによって、拡張ASCII文字をマングルさせることなくオープン(および保存)することができます。ここで
のANTLR v3のバージョンである文法は言った:http://pastebin.com/zU4xcvXt(文法はSOに投稿するためには大きすぎる...)
EDIT II
がちょうど越えて何のために有用な文法名ですそれにラベルを付ける?
いいえ、そうではありません。あなたが言及したように、それは単にパーサまたはレクサーに名前を付けるために使用されます。
ANTLRにおける文法の4種類があります
TLexer.java
とTParser.java
ソースファイルを生成し、grammar T;
のように見える組み合わせ文法は、。
- パーサ文法。
parser grammar TP;
のように見え、TP.java
ソースファイルを生成する。
- レクサー文法
lexer grammar TL;
のように見え、TL.java
ソースファイルを生成する。
- ツリー文法。
tree grammar TWalker
のように見え、TWalker.java
ソースファイルを生成します。
私は修正している特定の文法ファイルへのリンクを追加する質問を編集しました。問題を再現しようとしてください:) – MayaPosch
@MayaPosch、はい、そのファイルは、あなたが記述したものを再現します。奇妙な...私は明日(もしその時間の前に質問に答えられていなければ)それを詳しく見ていきます。 –
@MayaPosch、私はそれを休みさせることができませんでした...私のEDITを見てください。 –