X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Feval.mli;h=a2c2872e3f9fb8a805c9b83c3e1e45967e49d63c;hb=156de1e0df4aace1a42957491118cc2174d70c6a;hp=e1d73f0e1a401fa34ea426636215c564dfd27eb2;hpb=f36210fd16a8e4e4d6ecdd8825bf8b8307943472;p=goals.git diff --git a/src/eval.mli b/src/eval.mli index e1d73f0..a2c2872 100644 --- a/src/eval.mli +++ b/src/eval.mli @@ -27,12 +27,23 @@ val to_constant : Ast.env -> Ast.expr -> Ast.constant raises [Failure _]. *) val substitute : Ast.env -> Ast.loc -> Ast.substs -> string -(** Similar to {!substitute} except this is used where we will - pass the result immediately to the shell to execute. Variables - are substituted with shell quoted strings. Raises [Failure _] - on error. *) -val to_shell_script : Ast.env -> Ast.loc -> Ast.substs -> string +(** Run a code section. Returns the exit code. + Raises [Failure _] on error. *) +val run_code : Ast.env -> Ast.loc -> Ast.code -> int + +(** Run a code section. Returns the exit code and the full stdout + as a string. Raises [Failure _] on error. *) +val run_code_to_string : Ast.env -> Ast.loc -> Ast.code -> int * string + +(** Run a code section. Returns the exit code and the full stdout + as a list of strings. Raises [Failure _] on error. *) +val run_code_to_string_list : Ast.env -> Ast.loc -> Ast.code -> + int * string list (** Evaluate a goal argument. This substitutes any variables found, and recursively calls functions. *) val evaluate_goal_arg : Ast.env -> Ast.expr -> Ast.expr + +(* Call a function. *) +val call_function : Ast.env -> Ast.loc -> Ast.id -> Ast.expr list -> Ast.func -> + Ast.expr