mute/mute-interpreter/src/macros.rs
2024-05-10 18:56:21 -04:00

21 lines
606 B
Rust

// TODO: argument count checking should happen at parse time, not at runtime
#[macro_export]
macro_rules! arg_count {
($expected:expr, $given:expr) => {
if $expected != $given {
return Node::Error(format!("expected {} arg(s), got {}", $expected, $given));
}
};
(modulo: $modulo:expr, $given:expr) => {
if $given % $modulo != 0 {
return Node::Error(format!(
"expected {} arg(s), got {}",
($given / $modulo) * $modulo + $modulo,
$given,
));
}
};
}
pub(crate) use arg_count;