comparison src/cjr.sml @ 269:fac9fae654e2

Cjrize query
author Adam Chlipala <adamc@hcoop.net>
date Tue, 02 Sep 2008 09:53:15 -0400
parents 890a61991263
children 42dfb0d61cf0
comparison
equal deleted inserted replaced
268:bacd0ba869e1 269:fac9fae654e2
30 type 'a located = 'a ErrorMsg.located 30 type 'a located = 'a ErrorMsg.located
31 31
32 datatype datatype_kind = datatype Mono.datatype_kind 32 datatype datatype_kind = datatype Mono.datatype_kind
33 33
34 datatype typ' = 34 datatype typ' =
35 TTop 35 TFun of typ * typ
36 | TFun of typ * typ
37 | TRecord of int 36 | TRecord of int
38 | TDatatype of datatype_kind * int * (string * int * typ option) list ref 37 | TDatatype of datatype_kind * int * (string * int * typ option) list ref
39 | TFfi of string * string 38 | TFfi of string * string
40 39
41 withtype typ = typ' located 40 withtype typ = typ' located
67 66
68 | ECase of exp * (pat * exp) list * { disc : typ, result : typ } 67 | ECase of exp * (pat * exp) list * { disc : typ, result : typ }
69 68
70 | EWrite of exp 69 | EWrite of exp
71 | ESeq of exp * exp 70 | ESeq of exp * exp
71 | ELet of string * typ * exp * exp
72
73 | EQuery of { exps : (string * typ) list,
74 tables : (string * (string * typ) list) list,
75 rnum : int,
76 state : typ,
77 query : exp,
78 body : exp,
79 initial : exp }
72 80
73 withtype exp = exp' located 81 withtype exp = exp' located
74 82
75 datatype decl' = 83 datatype decl' =
76 DStruct of int * (string * typ) list 84 DStruct of int * (string * typ) list