X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=src%2Feval.mli;h=a2c2872e3f9fb8a805c9b83c3e1e45967e49d63c;hb=109185686ffdc00520eba2b4c3a92f10a111fb60;hp=751246166cef806396d3641f811c246355a4bcd0;hpb=98a2cfdd3bdf5641e268e7db7c7ea2d23656b296;p=goals.git diff --git a/src/eval.mli b/src/eval.mli index 7512461..a2c2872 100644 --- a/src/eval.mli +++ b/src/eval.mli @@ -17,7 +17,33 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) -val evaluate_targets : Ast.env -> Ast.expr list -> unit -(** This drives evaluation of the list of expressions (in parallel) - until they are complete or we reach an error. The expressions - are either a list of dependencies or a list of initial targets. *) +(** Take any expression and simplify it down to a constant. + If the expression cannot be simplified then this raises + [Failure _]. *) +val to_constant : Ast.env -> Ast.expr -> Ast.constant + +(** Take a substitution list and try to turn it into a simple + string by evaluating every variable. If not possible this + raises [Failure _]. *) +val substitute : 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