comparison src/mono.sml @ 178:eb3f9913bf31

First part of getting cases through monoize
author Adam Chlipala <adamc@hcoop.net>
date Sun, 03 Aug 2008 09:26:49 -0400
parents 25b169416ea8
children d11754ffe252
comparison
equal deleted inserted replaced
177:5d030ee143e2 178:eb3f9913bf31
35 | TDatatype of int * (string * int * typ option) list 35 | TDatatype of int * (string * int * typ option) list
36 | TFfi of string * string 36 | TFfi of string * string
37 37
38 withtype typ = typ' located 38 withtype typ = typ' located
39 39
40 datatype patCon =
41 PConVar of int
42 | PConFfi of string * string
43
44 datatype pat' =
45 PWild
46 | PVar of string
47 | PPrim of Prim.t
48 | PCon of patCon * pat option
49 | PRecord of (string * pat) list
50
51 withtype pat = pat' located
52
40 datatype exp' = 53 datatype exp' =
41 EPrim of Prim.t 54 EPrim of Prim.t
42 | ERel of int 55 | ERel of int
43 | ENamed of int 56 | ENamed of int
57 | ECon of int * exp option
44 | EFfi of string * string 58 | EFfi of string * string
45 | EFfiApp of string * string * exp list 59 | EFfiApp of string * string * exp list
46 | EApp of exp * exp 60 | EApp of exp * exp
47 | EAbs of string * typ * typ * exp 61 | EAbs of string * typ * typ * exp
48 62
49 | ERecord of (string * exp * typ) list 63 | ERecord of (string * exp * typ) list
50 | EField of exp * string 64 | EField of exp * string
65
66 | ECase of exp * (pat * exp) list * typ
51 67
52 | EStrcat of exp * exp 68 | EStrcat of exp * exp
53 69
54 | EWrite of exp 70 | EWrite of exp
55 | ESeq of exp * exp 71 | ESeq of exp * exp