1#[doc(hidden)]
2#[macro_export]
3macro_rules! private_parse_expr {
4 {
6 $caller:tt
7 input = [{ $($input:tt)* }]
8 } => {
9 $crate::private_parse_expr! {
10 $caller
11 tokens = [{ $($input)* }]
12 _tokens = [{ $($input)* }]
13 }
14 };
15
16 {
19 $caller:tt
20 tokens = [{ $e:expr }]
21 _tokens = [{ $($tokens:tt)* }]
22 } => {
23 $crate::tt_return! {
24 $caller
25 expr = [{ $($tokens)* }]
26 rest = [{ }]
27 }
28 };
29
30 {
32 $caller:tt
33 tokens = [{ $($unexpected:tt)+ }]
34 _tokens = [{ $($dup:tt)* }]
35 } => {
36 $crate::error_unexpected! {
37 $($unexpected)*
38 }
39 };
40}