2016-07-15 6 views
0

私はAntlr文法を書くのが初めてで、何か問題があります。私は次までの私の問題を単純化しています。ここAntlr4不要な入力が必要ですか?

は私の文法である:

grammar Test; 

prog : stmt*  ; 
stmt : INT NEWLINE ; 

INT  : [0-9]+  ; 
NEWLINE : '\r'? '\n' ; 

私INPUT.TXTは単に0\r\nある(ないリテラル '\'、 'R'、 '\'、 ' n」は、しかし、ASCIIコード0x0D 0x0A

私は次のエラーを取得する:

line 1:1 extraneous input '\r\n' expecting {<EOF>, INT} 

なぜそれが最初の012に一致せず、別のINTを期待していませんstmtルールの場合には、INTの後にNEWLINEが続く必要がありますか?

関連性がある場合は、PyCharmとAntlr4プラグインを使用して文法生成を行っています。

答えて

0

変更されたモジュールをインポートするモジュールを実行すると、問題はPythonの奇妙な動作に関連していました(ヒント:自動的に再読み込みされることはありません)。解決方法は、文法を変更するときにインタープリタを再起動することでした。

元の質問には、他の人がその回答を把握するのに十分な情報がなかったことは申し訳ありません。

関連する問題