In this article you started implementing your own version of Python. To do so, you needed to create four main components:
A tokenizer:
* accepts strings as input (supposedly, source code);
* chunks the input into atomic pieces called tokens;
* produces tokens regardless of their sequence making sense or not.
A parser:
* accepts tokens as input;
* consumes the tokens one at a time, while making sense they come in an order that makes sense;
* produces a tree that represents the syntax of the original code.
A compiler:
* accepts a tree as input;
* traverses the tree to produce bytecode operations.
An interpreter:
* accepts bytecode as input;
* traverses the bytecode and performs the operation that each one represents;
* uses a stack to help with the computations.