Refactor the lexer, add character literal