More tweaks to get the parser actually working. All tests pass except for two negative cases.