Remove commented out line of code
Create a new SourceLocation object for each Token
Switch to PEP8 79 column line length
Match idiomatic inline comment style
Remove some boilerplate in parser tests
Move eval_ast closer to the other eval_* functions
Make internal eval functions private
Make helper Parser methods private
Change class REPL to function repl
Switch to more idomatic `is None` and `is not None`
Fix errors generated by mypy 0.670
Improve __str__ method for illegal tokens
Gracefully handle parse errors during batch mode
Add eval_file
Also adds the ability to run a source file from the command line with an
optional `file` argument to monkey.py.
Make SourceLocation optional in Lexer constructor
Make SourceLocation optional in Token constructor