Description
Recent changes to address DAFFODIL-1437 (a cleanup) in Rules.scala showed that there are many test code coverage gaps. (CodeCov shows them in the changes in PR https://github.com/apache/daffodil/pull/561 )
These specific code coverage gaps are of particular concern, as this is the lexical analyzer code for Daffodil's recognizing of escapes, delimiters, etc.
This area needs to be well covered.
TDML Tests of real DFDL schemas and test data need to be created which create the subtle DFDL scenarios which cause all these variations to be explored and covered. If it turns out there is code here that is unreachable by way of actual DFDL parsing, then we should remove it and document why.
( Note that we could get the code coverage by just writing Junit tests that exercise these classes/objects directly. But we should not do that. The point is to create DFDL which causes this to be exercised when tested. )