my lexer and parsers