Listing the different inputs a parser can parse could be invaluable for debugging! To keep the different "paths" through the graph separate, I reckon the Parsing Unit would need to emulate itself... By parsing all paths from strings 1 byte shorter, & for each looking up the appropriate state(s) whose edges we should interpret to produce more output & the input for the next iteration, with or without avoiding cycles. Until we reach a target state or length.