From f4351288c5b57b130c0a75e5e84a445ca513527f Mon Sep 17 00:00:00 2001 From: Adam Chlipala Date: Thu, 31 Jul 2008 10:06:27 -0400 Subject: Elaborating some basic pattern matching --- src/elab.sml | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/elab.sml') diff --git a/src/elab.sml b/src/elab.sml index b258d7e5..48790a15 100644 --- a/src/elab.sml +++ b/src/elab.sml @@ -71,6 +71,17 @@ datatype con' = withtype con = con' located +datatype patCon = + PConVar of int + | PConProj of int * string list * string + +datatype pat' = + PWild + | PVar of string + | PCon of patCon * pat option + +withtype pat = pat' located + datatype exp' = EPrim of Prim.t | ERel of int @@ -86,6 +97,8 @@ datatype exp' = | ECut of exp * con * { field : con, rest : con } | EFold of kind + | ECase of exp * (pat * exp) list * con + | EError withtype exp = exp' located -- cgit v1.2.3