comparison src/cjrize.sml @ 1349:87156c44824f

Periodic tasks
author Adam Chlipala <adam@chlipala.net>
date Sat, 18 Dec 2010 15:17:09 -0500
parents 8a169fc0838b
children 02fc16faecf3
comparison
equal deleted inserted replaced
1348:8a169fc0838b 1349:87156c44824f
665 L.EAbs (x1, _, _, (L.EAbs (x2, _, _, e), _)) => 665 L.EAbs (x1, _, _, (L.EAbs (x2, _, _, e), _)) =>
666 let 666 let
667 val tk = case #1 e1 of 667 val tk = case #1 e1 of
668 L.EFfi ("Basis", "initialize") => L'.Initialize 668 L.EFfi ("Basis", "initialize") => L'.Initialize
669 | L.EFfi ("Basis", "clientLeaves") => L'.ClientLeaves 669 | L.EFfi ("Basis", "clientLeaves") => L'.ClientLeaves
670 | L.EFfiApp ("Basis", "periodic", [(L.EPrim (Prim.Int n), _)]) => L'.Periodic n
670 | _ => (ErrorMsg.errorAt loc "Task kind not fully determined"; 671 | _ => (ErrorMsg.errorAt loc "Task kind not fully determined";
671 L'.Initialize) 672 L'.Initialize)
672 val (e, sm) = cifyExp (e, sm) 673 val (e, sm) = cifyExp (e, sm)
673 in 674 in
674 (SOME (L'.DTask (tk, x1, x2, e), loc), NONE, sm) 675 (SOME (L'.DTask (tk, x1, x2, e), loc), NONE, sm)