If it is, you would get the next token and make a recursive call to the expression function. Take a look at the code that we have provided for the parser. Try and see how each procedure follows the BNF for the nonterminal it is representing. The execution unit is the real meat of the interpreter. The only purpose of the other parts of the interpreter is to get us to the point where we can actually execute the code.
Most programs make use of variables.
This means that we need some way of keeping track of what variables exist, and what values they hold. The data structure we use to do this is called a symbol table. A symbol table stores any information we want to associate with a variable name. In the case of the BBB interpreter, the only information we really care about is the variable's value. The symbol table should provide a way to lookup the current value of a variable, as well as change it's value.