try to finish lexer and parser in c