add lexer

flex