Is it a lexer's job to undo any escaping done to a string literal? For example:
"Me: \"Hello World!\""
Becomes:
Me: "Hello World!"
Should this conversion be done inside the lexer? I am guessing it should, because it'd allow for a more abstract and modular design. You could add ways to represent strings and you won't have to update every component.