私は次の文法を持っています:
SPACE : (' '|'\t'|'\n'|'\r')+ {$channel = HIDDEN;};
NAME_TAG : 'name';
IS_TAG : 'is';
START : 'START';
END : ('END START') => 'END START' ;
WORD : 'A'..'Z'+;
rule : START NAME_TAG IS_TAG WORD END;
「START name is END END START」のような言語を解析したい。ここでの問題は END トークンです。これは、'END' (Word + SPACE) が誤って解釈されるためです。ここでの正しいアプローチは、構文述語 (END トークン) を使用することだと思っていましたが、間違っている可能性があります。