A total rewrite again of the parser. A WIP