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プラグインを使用して文法生成を行っています。