fix the lexer
fix the parser