Don't send raw tokens to the visitor
Use Path for filename
Take Source instead of Lexer for the Error
Split up the parser from the rest