open Printf
-(* The list of jobs in this file. *)
-let jobs = ref []
+(* The state updated during parsing of the file. *)
+let state = ref Whenstate.empty
-let init () = jobs := []
+let init s = state := s
-let add_when_job _loc name e sh =
+let add_when_job _loc name pre post e sh =
let e = expr_of_ast _loc e in
- let job = make_when_job _loc name e sh in
- jobs := job :: !jobs
+ let job = { job_loc = _loc; job_name = name;
+ job_pre = pre; job_post = post;
+ job_cond = When_job e; job_script = sh } in
+ state := Whenstate.add_job !state job
-let add_every_job _loc name e sh =
- let job = make_every_job _loc name e sh in
- jobs := job :: !jobs
+let add_every_job _loc name pre post e sh =
+ let job = { job_loc = _loc; job_name = name;
+ job_pre = pre; job_post = post;
+ job_cond = Every_job e; job_script = sh } in
+ state := Whenstate.add_job !state job
-let get_jobs () =
- List.rev !jobs
+let set_variable name value =
+ state := Whenstate.set_variable !state name value
+
+let get_state () = !state