You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Merge rust-bitcoin#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
0 commit comments