У меня есть простое правило, как так:ANTLR - Период характер не сопоставляется при совпадении с "ничего"
ifClause: 'if' '(' condition ')' '{' (structField)+ '}' ;
condition: .*?;
Это работает для синтаксического анализа:
if (abc == def) {
<something>
}
Но ошибки вне на:
if (abc.xyz == def) {
<something>
}
с погрешностью:
line NN:MM token recognition error at: '.'
Почему бы не потреблять '.'
характер при сопоставлении .*?
I am using Antlr 4.5.3 and Python output.
Я изменил «условие» на «COND:. *?», И теперь я сталкиваюсь с различными проблемами двусмысленности, которые не связаны с вопросом. Спасибо! – shikhanshu