Creating a bytecode based programming language, part 2

This is the long, or not, awaited second post about creating a compiler and an interpreter.

In this post we will talk about parsing a source code.

Parsing is an operation which intend to decipher what a source code means.

It is usually preceded by a tokenization: the source code is read character by character and groups are formed from successive characters of the same nature. This can also be known under the name of lexical analysis. Those groups are called tokens.

Then we have a syntaxtic analysis, we try to recreate
expressions defined by components (tokens with a specific kind or value) that must appear in a certain order.
For my part I call this part token reduction, as I replace in the initial token list groups of tokens by a single complex token object, containing the replaced tokens.