Most of NFA stuff done, some runtime, and semantic errors I think, and
a few implementation issue, but mostly complete