LookAhead не работает в JFlex - PullRequest
       26

LookAhead не работает в JFlex

1 голос
/ 18 октября 2011

Я пытаюсь использовать 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 Ответ

3 голосов
/ 06 ноября 2011

Я думаю, вы неправильно понимаете значение «$».Как заглядывание, это соответствует только в конце строки текста (разрыв строки).Как таковой, он прекрасно работает.Но он не может различить car_N и car_NN, за исключением случаев, когда car_N находятся в самом конце строки.Может быть, вы действительно хотите посмотреть что-то вроде:

[A-Za-z]+_N/[^A-Za-z]
...