Я работаю над новой грамматикой antlr, которая похожа на nattys и должна распознавать выражения даты, но у меня проблема с правилами пропуска. Более подробно я хочу игнорировать бесполезные выражения «и» в выражениях, например:Как пропустить «и» с помощью правила пропустить?
Звоните Сэму, Джону и Адаму и назначьте встречу с Сарой о финансах в понедельник и пятницу.
Первые два «и» являются бесполезными. Я написал правило ниже, чтобы решить эту проблему, но это не сработало, почему? что мне делать?
NW : [~WeekDay];
UselessAnd : AND NW -> skip;
Я не думаю, что вы можете составить правила без фрагмента лексера. – Mephy
@Mephy, так что я должен делать? я должен это исправить, потому что он разбирает выражение бесполезно и неправильно. можно ли устранить эту проблему с помощью кодовых блоков? –
Вы не можете отменить слово в лексике ANTLR, только одиночные символы. '[~ WeekDay]' соответствует одному из следующих символов: '~', 'W',' e', 'k',' D', 'a' или' y' (и '~ [WeekDay]' соответствует любому символ, кроме 'W',' e', 'k',' D', 'a' и' y'). Но ANTLR не подходит для анализа естественных языков. Я предлагаю вам выполнить поиск по «обработке естественного языка». Обратите внимание, что Natty не анализирует полные предложения по мере публикации. –