(#11331) A whole new parser and some iteration goodness

This implements a new parser that provides an implementation of many parts of ARM-2
as well as some better error reporting.