Я уже прочитал this и this вопросов. Они весьма полезны, но все же у меня есть некоторые сомнения относительно генерации токена в лексическом анализаторе для C. Что делать, если лексический анализатор обнаруживает int a2.5c;
, тогда, согласно моим договоренностям, будет создано 7 токенов.Уточнение относительно лексических ошибок в C
int keyword
a identifier
2 constant
. special symbol
5 constant
c identifier
; special symbol
Таким образом, лексический анализатор не сообщает о каких-либо ошибках, и токены будут сгенерированы успешно.
Правильно ли я понимаю? Если нет, можете ли вы, пожалуйста, помочь мне понять?
Также если мы объявляем константу как double a = 10.10.10;
Будет ли она генерировать любые лексические ошибки? Зачем?
ОБНОВЛЕНИЕ: спрашивает из любопытства, что, если лексический анализатор обнаруживает :-)
смайлик в программе? Будет ли он генерировать любую лексическую ошибку? Потому что в соответствии с моим пониманием :
будет рассматриваться как специальный символ, -
будет рассматриваться в качестве оператора и снова )
будет рассматриваться как специальный символ
Спасибо
Существует много ресурсов относительно конструкции _compiler. Книга Н. Вирта с таким же именем доступна для скачивания бесплатно. – Olaf
Я ценю вашу помощь. Я скачал книгу и прочту ее. :) –
В чем проблема C, '2' не запускает новый токен, а является частью идентификатора. И '5c' без пробелов между ними не является допустимым токеном. –