X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=src%2Feval.mli;fp=src%2Feval.mli;h=e1d73f0e1a401fa34ea426636215c564dfd27eb2;hb=f36210fd16a8e4e4d6ecdd8825bf8b8307943472;hp=751246166cef806396d3641f811c246355a4bcd0;hpb=eb96a7b791ac414a861a31e93e3336924daaecbe;p=goals.git diff --git a/src/eval.mli b/src/eval.mli index 7512461..e1d73f0 100644 --- a/src/eval.mli +++ b/src/eval.mli @@ -17,7 +17,22 @@ * 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 + +(** 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 + +(** Evaluate a goal argument. This substitutes any variables found, + and recursively calls functions. *) +val evaluate_goal_arg : Ast.env -> Ast.expr -> Ast.expr