macro_rules! parse {
(
$res:ident;
$out:expr;
$var:ident in $iter:expr
$(, $( $unparsed:tt )* )?
) => { ... };
(
$res:ident;
$out:expr;
$var:ident <- $iter:expr
$(, $( $unparsed:tt )* )?
) => { ... };
(
$res:ident;
$out:expr;
let $var:ident $(: $ty:ty)? = $expr:expr
$(, $( $unparsed:tt )* )?
) => { ... };
(
$res:ident;
$out:expr;
let mut $var:ident $(: $ty:ty)? = $expr:expr
$(, $( $unparsed:tt )* )?
) => { ... };
(
$res:ident;
$out:expr;
let { $( $let_stmts:tt )* }
$(, $( $unparsed:tt )* )?
) => { ... };
(
$res:ident;
$out:expr;
let mut { $( $let_stmts:tt )* }
$(, $( $unparsed:tt )* )?
) => { ... };
(
$res:ident;
$out:expr;
let $var:pat = $expr:expr , else { $( $else_code:tt )* }
$(, $( $unparsed:tt )* )?
) => { ... };
(
$res:ident;
$out:expr;
let $var:pat = $expr:expr
$(, $( $unparsed:tt )* )?
) => { ... };
(
$res:ident;
$out:expr;
for $var:pat in $iter:expr
$(, $( $unparsed:tt )* )?
) => { ... };
(
$res:ident;
$out:expr;
$pred:expr
$(, $( $unparsed:tt )* )?
) => { ... };
(
$res:ident;
$out:expr;
$let_stmt:stmt
$(, $( $unparsed:tt )* )?
) => { ... };
(
$res:ident;
$out:expr;
$var:pat in $iter:expr
$(, $( $unparsed:tt )* )?
) => { ... };
(
$res:ident;
$out:expr;
) => { ... };
}