Давайте проясним, что я говорю об инструменте лексического анализа.
Для следующего ввода:
aa bb cc dd
Мне нужно, чтобы синтаксический анализатор соответствовал следующим подстрокам:
aa bb
bb cc
cc dd
У меня есть это регулярное выражение:
[a-zA-Z]+[ ]+[a-zA-Z]+
Но это соответствует только:
aa bb
cc dd
Мне сказали, что команду REJECT можно использовать для получения нужного результата, но я не знаю, как ее применить. Может ли кто-нибудь дать мне руку?
REJECT
в этом случае вам не поможет. Вы захотите, чтобы текущая позиция символа внутри лексера прыгала назад на 2 позиции, когда она соответствует[a-zA-Z]+[ ]+[a-zA-Z]+
, в то время какREJECT
будет возвращаться к началу правила и пытаться соответствовать гораздо большему количеству. Я недостаточно знаком с Flex, чтобы ответить на ваш вопрос. - person Bart Kiers   schedule 20.09.2011