From a8a4c5b567ea6a58809dc8232ea5f1d3c93879b9 Mon Sep 17 00:00:00 2001 From: Joel Kronqvist Date: Tue, 12 Aug 2025 20:00:56 +0300 Subject: feat: type checking for case expressions --- src/sexp/util.rs | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'src/sexp') 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)> { + match &(self.parts())[..] { + [casekw, scrutinee, cases @ ..] if casekw.clone() == Atom(Case) => + Some((scrutinee.clone(), cases.to_vec())), + _ => None, + } + } } -- cgit v1.2.3