X-Git-Url: http://git.annexia.org/?p=whenjobs.git;a=blobdiff_plain;f=lib%2Fpa_when.ml;h=6e0592d2e8e4dc4ab526b5fe1f0cfa99bb3416fe;hp=764cabc22267c799b383a6010e1c8549e5f035a9;hb=438813bcf327729f9dafc1a56c6cede550435e2e;hpb=2177768e4fe92533adc6ef76098312750576dc49 diff --git a/lib/pa_when.ml b/lib/pa_when.ml index 764cabc..6e0592d 100644 --- a/lib/pa_when.ml +++ b/lib/pa_when.ml @@ -84,8 +84,10 @@ let lift_expr = M.Expr.meta_expr (* Handle a top level statement. *) let rec call_stmt name (_loc, stmt, sh) = - let name = if name <> "" then name else unique_job_name () in - let name = <:expr< $str:name$ >> in + let name = + match name with + | None -> let name = unique_job_name () in <:expr< $str:name$ >> + | Some name -> name in match stmt with | `When e -> when_stmt _loc name e sh | `Every p -> every_stmt _loc name p sh @@ -211,8 +213,8 @@ EXTEND Gram (* "str_item" is a top level statement in an OCaml program. *) str_item: LEVEL "top" [ - [ s = statement -> call_stmt "" s ] - | [ "job"; name = STRING; s = statement -> call_stmt name s ] + [ s = statement -> call_stmt None s ] + | [ "job"; name = expr; s = statement -> call_stmt (Some name) s ] ]; END