алгоритм регулярного выражения в DFA - PullRequest
1 голос
/ 26 декабря 2010

Я пишу генератор лексического анализатора на основе регулярных выражений, основанный на алгоритме прямого перевода регулярного выражения в DFA, описанном в Книге Дракона.

Он вычисляет функции nullable, firstpos, lastpos и followpos для конкатенации, чередования и узлов клини-звезды. Я хочу добавить квантификаторы для + (один или несколько раз) и ? (ноль или один раз).

nullable, firstpos и lastpos легко вычислить, но я не уверен насчет followpos. Не лучше ли реализовать эти квантификаторы как часть этапа синтаксического анализа, а вместо этого переписать его на этапе лексического анализа (я думаю, что это всего лишь «синтаксический сахар» для клини-звезды и чередования)?

...