X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=src%2Feval.mli;h=a2c2872e3f9fb8a805c9b83c3e1e45967e49d63c;hb=109185686ffdc00520eba2b4c3a92f10a111fb60;hp=167b41eeae753da1f5e0a247a4c7eab7fefbd98a;hpb=94430834302e922af6c27a1c88e13f862a57dd0f;p=goals.git diff --git a/src/eval.mli b/src/eval.mli index 167b41e..a2c2872 100644 --- a/src/eval.mli +++ b/src/eval.mli @@ -17,6 +17,33 @@ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *) -val evaluate : 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. *) +(** 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