diff src/elab.sml @ 171:c7a6e6dbc318

Elaborating some basic pattern matching
author Adam Chlipala <adamc@hcoop.net>
date Thu, 31 Jul 2008 10:06:27 -0400
parents 06a98129b23f
children 8221b95cc24c
line wrap: on
line diff
--- a/src/elab.sml	Tue Jul 29 16:38:15 2008 -0400
+++ b/src/elab.sml	Thu Jul 31 10:06:27 2008 -0400
@@ -71,6 +71,17 @@
 
 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 @@
        | ECut of exp * con * { field : con, rest : con }
        | EFold of kind
 
+       | ECase of exp * (pat * exp) list * con
+
        | EError
 
 withtype exp = exp' located