It is necessary to add long jump support for all jump modes (RepeatSymbol, AppendDontCares) within the Nft::post() and Nft::is_in_lang() methods, as well as any other methods that may be affected.
Currently, these methods rely on the Nfa implementation, which cannot handle jump transitions.
Suppose we have a source state, a symbol, and two transitions:
- A standard transition:
source ----symbol----> tgt1 (length 1)
- A jump transition:
source ---symbol---> tgt2 (length 5)
Since post() does not account for jump transitions, it will provide both tgt1 and tgt2 as states reached using the symbol. However, this is incorrect. It is crucial to provide a way to track the depth within the jump transition, as there are still four more symbols to process before reaching tgt2.
It is necessary to add long jump support for all jump modes (
RepeatSymbol,AppendDontCares) within theNft::post()andNft::is_in_lang()methods, as well as any other methods that may be affected.Currently, these methods rely on the
Nfaimplementation, which cannot handle jump transitions.Suppose we have a
sourcestate, asymbol, and two transitions:source ----symbol----> tgt1(length 1)source ---symbol---> tgt2(length 5)Since
post()does not account for jump transitions, it will provide bothtgt1andtgt2as states reached using thesymbol. However, this is incorrect. It is crucial to provide a way to track the depth within the jump transition, as there are still four more symbols to process before reachingtgt2.