fix(parser): No more static calls, move Lexer into its own class