fix one lexer bug and improve macro successfully