-
Task
-
Resolution: Fixed
-
Major
-
None
-
None
-
None
The current processing algorithms are a bit confused across idioms. There is a mix of of things that happen when a parse fails. Sometimes it returns a failed status, sometimes it throws an exception, and sometimes it just doesn't append to a list, and returns the list. There's also complex side-effects to be able to modify state via side-effect, and then checkpoint and rollback changes to these state data structures, including the input stream, the variable memory, the resulting infoset, etc.
All this needs to be made consistent or it will be much too hard to reason about this software and get it correct.
See also related issue DFDL-64 Eliminate Excess use of Functionals