begin writing a lexer and parser