Это будет лексический анализ.
В некоторых языках есть «специальные» идентификаторы и ключевые слова.Они часто добавляются в таблицу идентификаторов и распределяются известные значения идентификаторов констант до начала анализа, чтобы их можно было легко обнаружить.Однако они обычно не имеют особого значения для синтаксического анализатора - они должны быть обнаружены в абстрактном синтаксическом дереве (AST) после синтаксического анализа.
Например, взгляните на отчет по языку Оберона ...
http://www -old.oberon.ethz.ch / oreport.html
Не рекомендация по языку - просто легкодоступная и простая языковая спецификация (очень в стиле Wirths).
В любом случае, раздел «Словарь и представление» содержит список «операторов и разделителей», включая то, что большинство людей распознало бы как ключевые слова.Они будут распознаваться лексическим анализатором.
В разделе «Объявления и правила области действия» есть список предопределенных идентификаторов, таких как «ABS» и «BOOLEAN».Я не достаточно знаком с Обероном, чтобы быть уверенным, но если бы я написал компилятор, есть хороший шанс, что я просто предварительно инициализировал бы таблицу нормальных идентификаторов, чтобы включить эти предопределенные идентификаторы.
В C«main» в большинстве случаев является просто другой функцией.Компилятор может или не может рассматривать его как особый.Вполне возможно, что единственное «особенное» в этом то, что код запуска, который связывается с вашим конечным исполняемым файлом, вызывает эту функцию.