-
Notifications
You must be signed in to change notification settings - Fork 3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
hocc code generation #246
Merged
Merged
hocc code generation #246
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
jasone
force-pushed
the
codegen
branch
4 times, most recently
from
August 8, 2024 18:56
94cdf7b
to
fd6fd16
Compare
jasone
force-pushed
the
codegen
branch
5 times, most recently
from
August 18, 2024 00:11
06a77fb
to
e877ac0
Compare
jasone
force-pushed
the
codegen
branch
4 times, most recently
from
August 25, 2024 18:26
bdcacb0
to
731297a
Compare
The original source directive documentation used an implausible parser generator example to demonstrate nuances that are irrelevant to e.g. `hocc` code generation. Add a practical `hocc`-based example, and replace the original contrived example with another that focuses on the edge case nuances.
A cursor computation double-counted characters preceding the beginning of the slice being searched. Remove the double counting and add a test on non-maximal slices.
This is the last version based on the hand-written recursive descent parser.
Replace the hand-written recursive descent hocc parser with a hocc-generated parser. The parsers have equivalent behavior with the inconsequential exception of how leading/trailing comments are associated with reduction callback code and the postlude.
This data structure simplification removes unnecessary complexity dating to before the finalization of hocc's generated parser API.
Add hocc bootstrapping instructions in a comment at the top of `Parse.hmh`. Dune refuses to allow writes outside the build directory, so this is a more manual process than ideal. Enhance symbol type syntax in the hocc grammar, which previously supported types of the form `M.t` to support unqualified types (e.g. `t`), as well as general qualified types (e.g. `M.N.t`). Mangle `tl` as `tl__hocc__` in generated code. Fix callback generation for prods sharing a callback block. Implement richer binding pattern syntax. Remove syntax support for embedded code within the hocc block, and make keywords contextual rather than global. Incidentally, codegen failed to emit such embedded code.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The original source directive documentation used an implausible parser generator example to demonstrate nuances that are irrelevant to e.g.
hocc
code generation. Add a practicalhocc
-based example, and replace the original contrived example with another that focuses on the edge case nuances.