comparison src/monoize.sml @ 177:5d030ee143e2

Case through corify
author Adam Chlipala <adamc@hcoop.net>
date Sat, 02 Aug 2008 11:15:32 -0400
parents 25b169416ea8
children eb3f9913bf31
comparison
equal deleted inserted replaced
176:33d4a8eea484 177:5d030ee143e2
169 in 169 in
170 case e of 170 case e of
171 L.EPrim p => (L'.EPrim p, loc) 171 L.EPrim p => (L'.EPrim p, loc)
172 | L.ERel n => (L'.ERel n, loc) 172 | L.ERel n => (L'.ERel n, loc)
173 | L.ENamed n => (L'.ENamed n, loc) 173 | L.ENamed n => (L'.ENamed n, loc)
174 | L.ECon _ => raise Fail "Monoize ECon"
174 | L.EFfi mx => (L'.EFfi mx, loc) 175 | L.EFfi mx => (L'.EFfi mx, loc)
175 | L.EFfiApp (m, x, es) => (L'.EFfiApp (m, x, map (monoExp (env, st)) es), loc) 176 | L.EFfiApp (m, x, es) => (L'.EFfiApp (m, x, map (monoExp (env, st)) es), loc)
176 177
177 | L.EApp ( 178 | L.EApp (
178 (L.ECApp ( 179 (L.ECApp (
446 monoExp (env, st) e, 447 monoExp (env, st) e,
447 monoType env t)) xes), loc) 448 monoType env t)) xes), loc)
448 | L.EField (e, x, _) => (L'.EField (monoExp (env, st) e, monoName env x), loc) 449 | L.EField (e, x, _) => (L'.EField (monoExp (env, st) e, monoName env x), loc)
449 | L.ECut _ => poly () 450 | L.ECut _ => poly ()
450 | L.EFold _ => poly () 451 | L.EFold _ => poly ()
452
453 | L.ECase _ => raise Fail "Monoize ECase"
454
451 | L.EWrite e => (L'.EWrite (monoExp (env, st) e), loc) 455 | L.EWrite e => (L'.EWrite (monoExp (env, st) e), loc)
452 456
453 | L.EClosure (n, es) => (L'.EClosure (n, map (monoExp (env, st)) es), loc) 457 | L.EClosure (n, es) => (L'.EClosure (n, map (monoExp (env, st)) es), loc)
454 end 458 end
455 459