Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This is a quick attempt at rendering an EBNF dialect for sake of human consumption rather than for parsing. It's a made-up dialect, formatted for presentation in documentation, and presented as HTML. I hope it sits well alongside the SVG railroad diagrams for the same purpose.
Most of the time it looks something like this:
and in worser cases like this:
There you can see the hex encoding for non-printable things, which I picked for the railroad diagrams because I think it's slightly less confusing for single characters than using an escape character.
The excess parentheses appear there because this rendering is directly from the AST rather than a more convenient form for rewriting and optimisations. Hence #24.