-
Notifications
You must be signed in to change notification settings - Fork 140
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge #775: Rewrite expression parser to be non-recursive
75f400f error: remove two more variants which were redundant with threshold errors (Andrew Poelstra) cdac32e error: remove 3 now-unused variants from the global Error enum (Andrew Poelstra) ccb9c70 expression: drop Error::ParseTree variant (Andrew Poelstra) 0b6fcf4 expression: unify Taproot and non-Taproot parsing (Andrew Poelstra) 360ed59 Introduce `error` module with single `ParseError` enum in it. (Andrew Poelstra) 179dc87 expression: move some ad-hoc validation from descriptor module (Andrew Poelstra) f5dcafd expression: start tracking parenthesis-type and string position (Andrew Poelstra) 853a01a expression: rewrite parser to be non-recursive (Andrew Poelstra) 20066bd checksum: use array::from_fn (Andrew Poelstra) df75cbc update fuzz/README.md to use hex crate (Andrew Poelstra) Pull request description: This PR does several things but the only big commit is "unify Taproot and non-Taproot parsing" which replaces the ad-hoc logic in `Tr::from_str` to handle Taproot parsing with unified expression-parsing logic. In addition to this, we also: * rewrite the expression parser to be non-recursive, which is a reduction in LOC thanks to our prepatory work * introduces an `error` module whose types will eventually replace the top-level `Error` enum * relatedly, drops several error variants including the stringly-typed `BadDescriptor` (it does not get rid of `Unexpected` which is *also* a stringly-typed catch-all error, but we will..) ACKs for top commit: sanket1729: ACK 75f400f Tree-SHA512: 8c535f420f39cf565900adb938f7a30c24cfc93fe30f09268f1b2d70fff5d7dc1f06ca0a3972c118f4e6889b107040feeab849b22e74bd8355f816a9dd3d4448
- Loading branch information
Showing
18 changed files
with
534 additions
and
429 deletions.
There are no files selected for viewing
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
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
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
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
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
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
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
Oops, something went wrong.