2009-11-17 4 views

ответ

0

Lexer не заботится о семантике, единственная миссия в жизни для лексеров состоит в том, чтобы преобразовать исходный код (поток символов) в токены, каждый из которых имеет эту форму. <Token_type, Information_related_to_token> информация может быть, значение токена (строки), имя оператора (=) ...

Токены затем отправляются в парсер, который имеет дело с синтаксическим анализом. в качестве побочного задания лексер может создать таблицу символов.

0

В yacc ваш лексер получает глобальную переменную с именем yylval, которая является C-соединением. Еще в Yacc, это становится значением для $1, $2 и т.д.

1

лексических не иметь дело с семантикой, они занимаются только с поворотом потока символов в токены (последовательности символов, которые имеют смысл для компилятора). Семантика определяется во время синтаксического анализа. См. Этот answer на предыдущий вопрос для получения дополнительной информации о этапах компиляции.

 Смежные вопросы

  • Нет связанных вопросов^_^