Loader, generate-json-serializer, generate-pprint, generate-eq, and generate-utest #901
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 PR includes commits from several other PRs, and will thus need to be merged after them. More minimal diff here.
The primary content of this PR is a
Loader
, a new API meant to make it easy to incrementally construct a program even when you need to programmatically include additional files. The interface wraps the boot-parser, but tries to provide an interface that should hopefully stay mostly the same even after we use the new mlang-pipeline.Secondarily, I also adapt
generate-json-serializer.mc
to work with the new loader and addgenerate-pprint.mc
andgenerate-eq.mc
for structural pprint and eq functions, then use the latter two to implement agenerate-utest.mc
.