Задать вопрос
doublench21
@doublench21

Как внутри работает Flex или Lex?

Как именно работает лексер внутри ? Понял, что он строит две таблицы, одна из которых это таблица переходов, а вторая, сопоставляет состоянию - действие. А как именно работает сам цикл я так и не понял. Может кто сможет пояснить ?
  • Вопрос задан
  • 236 просмотров
Подписаться 1 Оценить Комментировать
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
Нет, задача лексера - преобразовать поток символов (текст программы) на входе в поток лексем, как правило расширенных, на выходе. Например:
1 + 1 * 2 => <число(1)> <плюс> <число(2)> <умножить> <число(2)>

flex по формальной грамматике строит лексер, то есть выдаёт код на C, содержащий определение функции yylex(), при каждом вызове которой выдаётся следующая лексема.
Реализация лексера может быть различной, часто используются конечные автоматы.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы