Open
Description
Chumsky currently supports a primitive debugging system, allowing parsers to print to stdout
when entered during a call to Parser::parse_recovery_verbose
. Expanding this further will require some thought.
- What problems should debugging attempt to solve?
- Parsers that consume zero input and repeat
- Paths erroneously taken
- Priority errors (i.e:
a.or(b)
vsb.or(a)
)
- What information needs to be shown to the user?
- Entered parsers
- Number of iterations
- Source location of parser
- Recursion points
- How is best to show this information?
- Annotated tree?
- What API features should be supported?
- Recursion limit to prevent stack overflows