Details
-
Improvement
-
Resolution: Fixed
-
Normal
-
None
-
None
-
None
Description
Current code has HasDelimiterText trait/class - which has been renamed to ComputeValueFoundInstead.
This uses a bunch of trickery to access the data stream so as to be able to display, in a diagnostic message, what was found that was not a delimiter, that is, what was found instead of a delimiter.
This is a very expensive operation, or seems like it is, and it is done every time we backtrack because the non-matching data must be captured whenever a delimiter is not matched. This overhead cannot be delayed until the diagnostic message is actually issued.
Really the right way for this to work is the DFA should capture this as part of its matching process, where it will add no additional real overhead.