finish lexer and parser