Improved type checking

Type checking now works with the updated variable identifiers.
Fixed subtraction and division

Subtraction and division now put operations in the correct order every
time.
Improved error reporting

Error messages now report the line the error was encountered on.