Reverted back
This commit is contained in:
@@ -26,71 +26,3 @@ pub fn parse<'a>(source: &'a str) -> Result<Vec<TopLevel>, ParseError<'a, Vec<To
|
||||
|
||||
Ok(statements)
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! ast_expr {
|
||||
($inner:tt @ $($item:ident)::+ ( $($t:tt $val:tt $val2:tt),* )) => {{
|
||||
$($item)::+ ( $( $crate::_ast_t!($t $crate::_ast_ti!($inner, $val $val2)) )* )
|
||||
}};
|
||||
|
||||
($inner:tt @ $($item:ident)::+ { $($name:ident $t:tt $val:tt $val2:tt),*}) => {{
|
||||
$(
|
||||
let $name = $crate::_ast_t!($t $crate::_ast_ti!($inner, $val $val2));
|
||||
)*
|
||||
|
||||
$($item)::+ { $($name,)* }
|
||||
}};
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! _ast_t {
|
||||
(: $val:expr) => {
|
||||
$val.get()?
|
||||
};
|
||||
|
||||
(? $val:expr) => {
|
||||
$val.or_else(|e| {
|
||||
if let Some(recovered) = e.recovered {
|
||||
Ok(recovered)
|
||||
} else {
|
||||
Err(e)
|
||||
}
|
||||
})
|
||||
.get()?
|
||||
};
|
||||
}
|
||||
|
||||
#[macro_export]
|
||||
macro_rules! _ast_ti {
|
||||
($inner:ident, !*) => {
|
||||
$crate::error::collect_recovered($inner)
|
||||
};
|
||||
|
||||
($inner:ident, @*) => {
|
||||
$crate::error::collect_recovered($inner.next.unwrap().into_inner())
|
||||
};
|
||||
|
||||
($inner:ident, @ @) => {
|
||||
$inner.next().unwrap().try_into()
|
||||
};
|
||||
|
||||
($inner:ident, ! $val:ident) => {
|
||||
$val::try_from(&mut $inner)
|
||||
};
|
||||
|
||||
($inner:ident, @ $val:ident) => {
|
||||
$val::try_from($inner.next().unwrap())
|
||||
};
|
||||
|
||||
($inner:ident, ? $val:ident) => {
|
||||
$inner.next().map($val::try_from).transpose()
|
||||
};
|
||||
|
||||
($inner:ident, ? ($rule:path)) => {
|
||||
$crate::parser::listen_rule(&mut $inner, $rule)
|
||||
};
|
||||
|
||||
($inner:ident, & $val:expr) => {
|
||||
$val
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user