macro_rules! match_ast {
(match $node:ident { $($tt:tt)* }) => { ... };
(match ($node:expr) {
$( ast::$ast:ident($it:pat) => $res:expr, )*
_ => $catch_all:expr $(,)?
}) => { ... };
}
Expand description
Matches a SyntaxNode
against an ast
type.
Example:
ⓘ
match_ast! {
match node {
ast::Apply(it) => { ... },
ast::Assert(it) => { ... },
ast::IfElse(it) => { ... },
_ => None,
}
}