Move negative handling to lexer