diff options
Diffstat (limited to 'src/sexp/util.rs')
-rw-r--r-- | src/sexp/util.rs | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/sexp/util.rs b/src/sexp/util.rs index a28aaad..3de45d4 100644 --- a/src/sexp/util.rs +++ b/src/sexp/util.rs @@ -86,4 +86,12 @@ impl SExp { _ => None } } + + pub fn check_case(self) -> Option<(SExp, Vec<SExp>)> { + match &(self.parts())[..] { + [casekw, scrutinee, cases @ ..] if casekw.clone() == Atom(Case) => + Some((scrutinee.clone(), cases.to_vec())), + _ => None, + } + } } |