This will be a lexical analysis.
Some languages have “special” identifiers as well as keywords. They are often added to the identifier table and highlight known constant identifier values before starting parsing so that they can be easily detected. However, they usually do not have much meaning for the parser - they should be found in the abstract syntax tree (AST) after parsing.
For example, see the Oberon language report ...
http://www-old.oberon.ethz.ch/oreport.html
Not a language recommendation - just an easily accessible and simple language specification (very Wirths style).
In any case, the Dictionary and Presentation section includes a list of “operators and delimiters,” including what most people recognize as keywords. They will be recognized by the lexical analyzer.
In the "Declarations and Area Rules" section, there is a list of predefined identifiers such as "ABS" and "BOOLEAN". I am not familiar enough with Oberon, but if I wrote the compiler, I had a good chance that I would simply pre-initialize the normal identifier table to include these predefined identifiers.
In C, the "core" in most cases is just another function. The compiler may or may not treat it as special. Perhaps the only "special" thing is that the startup code that is associated with your final executable calls this function.
source share