If I break down the compilation process for a C or C++ source file into these steps:
- A: Preprocessing.
- B: Tokenizing (collecting and listing keywords, identifiers, symbols, literals (strings, characters, numbers)).
- C: Assembling collected tokens into a structured form, such as a tree.
- D: Processing and verifying this structured form by analyzing its semantics.
- E: Generating a list of instructions (eg: ASM).
My nomenclature questions are:
- Is syntax parsing all of #ABC? #BC? just #C?
- What terms should I use for #ABC? #BC? #C?
- What is lexing, here? Is it just #B?
- Is #D semantic parsing?