で二回表示され、この単純なガンマR入力にANTLRエラーが私のpythonをantlr4使用しています代替
emptytest : (COMMA | empty empty nonempty) EOF ;
empty : SEMICOLON* ;
nonempty : DOT+ ;
DOT : '.' ;
SEMICOLON : ';' ;
COMMA : ',' ;
「...」との奇妙な何かに実行し、私はエラーに ラインを得ました1:0の不一致の入力 '。' {';'、 '、'}を期待しています
しかし、私が「空」をドロップしたり、「COMMA |」をドロップしたりすると、ルールから、エラーはありません。
なぜ入力 '...'が空(= '')空(= '')空ではないと思うのですか?
ありがとうございます。
ありがとうございます。しかし、あいまいさについての警告はありません。私が見たのは –
です。説明をありがとう。しかし、入力に「...」のあいまいさがないので、あいまいさに関する警告はありません。 しかし、たとえあいまいであったとしても、正当な入力に失敗するのではなく、警告とともに、Antlrが可能性の1つに沿って解析する方が合理的です。実際問題として、私が使用するAntlr4は、あいまいで最初の選択肢を選んだようなものです:入力 '; ...'では、この解析木が生成されました。 (emptytest(空;)空(空ではありません。))警告なし –