Developing a parser from scratch