これはANTLR4で私の文法である:私はのようなものを入力するとANTLR4の曖昧さ回避
grammar Hello;
r : WORD ID ;
ID : [a-z]+ ;
WORD : [a-z]+ ;
WS : [ \t\r\n]+ -> skip ;
は:
line 1 missing WORD at 'hello'
:
hello buddy
私は、次のエラーメッセージが表示されましたしかし、文法を変更すると、
grammar Hello;
r : WORD ID ;
ID : [a-z]+ ;
WORD : [1-9]+ ;
WS : [ \t\r\n]+ -> skip ;
ここで、WORDは数字ですが、すべて正常です。 最初の文法では、同じ正規表現を持つ2つの終端ノードがあるため、パーサーは実際の単語の対応関係を知らないことを強く疑う。 私はそれを間違って考えていますか?そうでない場合、同じ正規表現を持つ複数の端末を保持して、この問題をどのように解決しますか?