comparison src/cjr.sml @ 109:813e5a52063d

Remove closure conversion in favor of zany fun with modules, which also replaces 'page'
author Adam Chlipala <adamc@hcoop.net>
date Sun, 13 Jul 2008 10:17:06 -0400
parents d101cb1efe55
children ff13d390ec60
comparison
equal deleted inserted replaced
108:f59553dc1b6a 109:813e5a52063d
29 29
30 type 'a located = 'a ErrorMsg.located 30 type 'a located = 'a ErrorMsg.located
31 31
32 datatype typ' = 32 datatype typ' =
33 TTop 33 TTop
34 | TFun 34 | TFun of typ * typ
35 | TCode of typ * typ
36 | TRecord of int 35 | TRecord of int
37 | TNamed of int 36 | TNamed of int
38 | TFfi of string * string 37 | TFfi of string * string
39 38
40 withtype typ = typ' located 39 withtype typ = typ' located
43 EPrim of Prim.t 42 EPrim of Prim.t
44 | ERel of int 43 | ERel of int
45 | ENamed of int 44 | ENamed of int
46 | EFfi of string * string 45 | EFfi of string * string
47 | EFfiApp of string * string * exp list 46 | EFfiApp of string * string * exp list
48 | ECode of int
49 | EApp of exp * exp 47 | EApp of exp * exp
50 48
51 | ERecord of int * (string * exp) list 49 | ERecord of int * (string * exp) list
52 | EField of exp * string 50 | EField of exp * string
53
54 | ELet of (string * typ * exp) list * exp
55 51
56 | EWrite of exp 52 | EWrite of exp
57 | ESeq of exp * exp 53 | ESeq of exp * exp
58 54
59 withtype exp = exp' located 55 withtype exp = exp' located
60 56
61 datatype decl' = 57 datatype decl' =
62 DStruct of int * (string * typ) list 58 DStruct of int * (string * typ) list
63 | DVal of string * int * typ * exp 59 | DVal of string * int * typ * exp
64 | DFun of int * string * typ * typ * exp 60 | DFun of string * int * string * typ * typ * exp
65 61
66 withtype decl = decl' located 62 withtype decl = decl' located
67 63
68 type file = decl list * ((string * typ) list * exp) list 64 type file = decl list * int list
69 65
70 end 66 end