Remove commented out line of code
Create a new SourceLocation object for each Token
Fix flake8 errors
Switch to PEP8 79 column line length
Match idiomatic inline comment style
Add linting with flake8
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
Make comment consistent
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
Add tests for Token