Rename 'cleanup' to 'post'.
[whenjobs.git] / lib / pa_when.ml
index 2d82cb3..00bfd14 100644 (file)
@@ -88,15 +88,16 @@ module M = Ast.Meta.Make (Ast.Meta.MetaGhostLoc)
 let lift_expr = M.Expr.meta_expr
 
 (* Handle a top level statement. *)
 let lift_expr = M.Expr.meta_expr
 
 (* Handle a top level statement. *)
-let rec call_stmt name cleanup (_loc, stmt, sh) =
+let rec call_stmt name pre post (_loc, stmt, sh) =
   let name =
     match name with
     | None -> let name = unique_job_name () in <:expr< $str:name$ >>
     | Some name -> name in
   let name =
     match name with
     | None -> let name = unique_job_name () in <:expr< $str:name$ >>
     | Some name -> name in
-  let cleanup = expr_of_option _loc cleanup in
+  let pre = expr_of_option _loc pre in
+  let post = expr_of_option _loc post in
   match stmt with
   match stmt with
-  | `When e -> when_stmt _loc name cleanup e sh
-  | `Every p -> every_stmt _loc name cleanup p sh
+  | `When e -> when_stmt _loc name pre post e sh
+  | `Every p -> every_stmt _loc name pre post p sh
 
 (* Handle a top level "when" statement.
  * e -> when expression
 
 (* Handle a top level "when" statement.
  * e -> when expression
@@ -104,20 +105,20 @@ let rec call_stmt name cleanup (_loc, stmt, sh) =
  * Returns a top level statement (str_item) which when executed just
  * adds the statement to a global list.
  *)
  * Returns a top level statement (str_item) which when executed just
  * adds the statement to a global list.
  *)
-and when_stmt _loc name cleanup e sh =
+and when_stmt _loc name pre post e sh =
   let loc = expr_of_loc _loc _loc in
   let e = lift_expr _loc e in
   <:str_item<
     open Camlp4.PreCast
   let loc = expr_of_loc _loc _loc in
   let e = lift_expr _loc e in
   <:str_item<
     open Camlp4.PreCast
-    Whenfile.add_when_job $loc$ $name$ $cleanup$ $e$ $sh$
+    Whenfile.add_when_job $loc$ $name$ $pre$ $post$ $e$ $sh$
   >>
 
 (* Handle a top level "every" statement. *)
   >>
 
 (* Handle a top level "every" statement. *)
-and every_stmt _loc name cleanup period sh =
+and every_stmt _loc name pre post period sh =
   let loc = expr_of_loc _loc _loc in
   <:str_item<
     open Camlp4.PreCast
   let loc = expr_of_loc _loc _loc in
   <:str_item<
     open Camlp4.PreCast
-    Whenfile.add_every_job $loc$ $name$ $cleanup$ $period$ $sh$
+    Whenfile.add_every_job $loc$ $name$ $pre$ $post$ $period$ $sh$
   >>
 
 let () =
   >>
 
 let () =
@@ -209,10 +210,9 @@ EXTEND Gram
   | [ e = period_parser -> e ]
   ];
 
   | [ e = period_parser -> e ]
   ];
 
-  (* Cleanup function. *)
-  cleanup: [
-    [ "cleanup"; f = expr -> f ]
-  ];
+  (* Pre and post functions. *)
+  pre: [[ "pre"; f = expr -> f ]];
+  post: [[ "post"; f = expr -> f ]];
 
   (* Top level statements. *)
   statement: [
 
   (* Top level statements. *)
   statement: [
@@ -224,11 +224,12 @@ EXTEND Gram
 
   (* "str_item" is a top level statement in an OCaml program. *)
   str_item: LEVEL "top" [
 
   (* "str_item" is a top level statement in an OCaml program. *)
   str_item: LEVEL "top" [
-    [ s = statement -> call_stmt None None s ]
+    [ s = statement -> call_stmt None None None s ]
   | [ "job"; name = expr;
   | [ "job"; name = expr;
-      cleanup = OPT cleanup;
+      pre = OPT pre;
+      post = OPT post;
       s = statement ->
       s = statement ->
-        call_stmt (Some name) cleanup s ]
+        call_stmt (Some name) pre post s ]
   ];
 
 END
   ];
 
 END