Initial prototype for using serde generic parse trees. #591
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 an initial prototype for #589, I think the code is pretty gross, however I also believe it might work,
just from minimal testing with
For instance, if I compare the following output with and without
-tpassed to nimbleparse, it seems like I got the correct nesting (I think, unless my sleep deprived brain is mistaken).{ "src": "5 + 4 * 3", "ast": [ Nonterm("Expr", [ Nonterm("Expr", [ Nonterm("Term", [ Nonterm("Factor", [ Term("INT", "5"), ]), ]), ]), Term("+", "+"), Nonterm("Term", [ Nonterm("Term", [ Nonterm("Factor", [ Term("INT", "4"), ]), ]), Term("*", "*"), Nonterm("Factor", [ Term("INT", "3"), ]), ]), ]), ], }It currently only supports
Serialize, doesn't do anything when parsing multiple inputs (parse_many) or when inputs are specified viatest_filesin the%grmtoolssection.But it seemed like perhaps a good place to stop and evaluate.