LookAhead не работает в JFlex
Я пытаюсь использовать JFlex для создания парсера, но сталкиваюсь с очень простой проблемой. Я хочу получить этот токен
[A-Za-z]+_N$ { System.out.println("Noun"); }
и он должен распознавать "car_N" как "существительное" и НЕ распознавать "car_NN". но это не работает, если я использую
[A-Za-z]+_N { System.out.println("Noun"); }
"car_N" получает распознавание, но "car_NN" также возвращает "car_N", это не то, что я хочу.
Интересно, кто-нибудь здесь знает, как помочь?
JFlex и Flex с условным обозначением "$" не работают
1 ответ
Я думаю, вы неправильно понимаете значение "$". Напротив, он соответствует только в конце строки текста (разрыв строки). Как таковой, он прекрасно работает. Но он не может различить car_N и car_NN, за исключением случаев, когда car_N находятся в самом конце строки. Может быть, вы действительно хотите посмотреть что-то вроде:
[A-Za-z]+_N/[^A-Za-z]