add lexer.h