Details
-
Bug
-
Status: Open
-
Minor
-
Resolution: Unresolved
-
3.3.0
-
None
-
None
Description
Daffodil's diagnostic message on left-over-data is inadequate.
When a user gets this message about left-over data, nothing mentions that
- the parse ended normally
- An infoset was created (nor is this infoset or any representation of it shown)
Furthermore, the message provided mentions offsets in bits, without giving a translation of those into units of bytes. (Even if divisible by 8).
This diagnostic needs improvement.
Furthermore, when this diagnostic is issued, it needs to suggest what stopped processing. This may require a breadcrumb of why a repeating structure ended - e.g., if occursCountKind is parsed or implicit, that it a parse failure ended the array.
I'm thinking a finite depth stack of parse errors needs to be maintained so that after a final failure that is resolved by terminating an array, that the prior diagnostic message (the one suppressed by the recurring element's termination), can have access to the most recent few processing errors. (By finite stack, I mean if the stack is full and you try to push, the bottom element of the stack is removed to make room for another top element)