Значения, для которых из атрибутов токена заполняются в таблице символов лексическим анализатором - PullRequest
1 голос
/ 21 сентября 2019

Поскольку токен может иметь разные атрибуты, например имя, тип, размер и т. Д. Я не понимаю, какие из них заполняются лексическим анализатором, а какие - другими фазами компилятора. Поскольку разные компиляторы могут вести себя по-разному, мы можемвзять компилятор gcc c в качестве ссылки.

1 Ответ

0 голосов
/ 22 сентября 2019

Несколько субъективно, так как это зависит от того, что вы строите (компилятор, интерпретатор и т. Д.).Также достаточно общее описание:

Лексический анализ или сканирование возьмет ваш исходный код и разбит его на «токены» или «лексемы», но они еще не могут быть помещены в таблицу символов.

Оценка, если вы реализуете, - это точка, с которой вы можете начать удаление идентификаторов (например, пометив в качестве ключевого слова и т. Д.).И, как правило, это первая точка, в которой токен может претендовать на вход в таблицу символов.В зависимости от символа атрибуты символа в этой точке могут быть полными.

Более поздние этапы, такие как анализ, могут ссылаться на символ и содержать дополнительную информацию, такую ​​как область видимости, внутренняя или внешняя ссылка, видимость, типи размер, и т.д ..

Генерация кода завершит любые атрибуты символа, и в этот момент вы пишете двоичный файл.

...