Closed davidbien closed 3 years ago
I believe this is fixed by the bug that existed in KMSBitSet() method. Anyway I just looked through the generation logs in debug and retail for the XML parser state machine and I do not see any "Filtering" in the messages.
During NFA->DFA conversion some triggers are becoming ambiguous with each other. This shouldn't happen as the entry transitions into each trigger state are unique transition values.
The example is currently the full XML specification productions.
I filter out the ambiguous trigger states by examining the input transition to that ambiguous state. I keep only the trigger action that corresponds to that single input.
This is the error that I spew while filtering: { "msec": 3240, "Time": "20201211-173212", "Type": 2, "Mesg": ": void ns_re::_l_generator<ns_re::_dfa<wchar_t, std::allocator >, char>::_GenStateType(std::ostream &, ns_re::_l_generator::_TyGraphNode *, int, bool, bool &, bool &, ns_re::vtyTokenIdent &, ns_re::_l_generator::_TyRangeEl &) [t_TyDfa = ns_re::_dfa<wchar_t, std::allocator >, t_TyCharOut = char]: Filtering out token [10] since it doesn't match the input transition. This looks like a bug in NFA->DFA conversion."
}