Added call statements. Added label lookup table.

The lookup table is a way for me to find out the label of a procedure. I'll also need to use it to
find the order of variables.
Code generation for functions, calls, and add/sub.

Things are coming together. I think there's quite a bit of messy code since I didn't plan these
structures from the start. I'm definitely going to be refactoring soon.
Fixed some bugs, full expression codegen in place.

Code generation for the range of expressions is in place! It's really messy and not optimal in the
slightest, but it seems to work so far!
Found a bug in the lexer - it couldn't identify a division sign in an expression. Fixed that.
Found a few more bugs due to my quick copy pasting. Fixed those as well.
Now supports some if expressions.

Realized I need to modify my implementation of global variables in order to supported nested
statments/recursion.
Everything is done :).

There are more bugs I have no doubt, but things are working!
For simple PL/0 programs at least the compiler produces correct (if unoptimized) output!
More testing to come for sure.
Added a statement to allow printing characters.

Fixed a bug in the parser that caused an infinite loop.