From ef312564ca84a2b49fc291434d8fb2f8501bb618 Mon Sep 17 00:00:00 2001 From: Sébastien Dailly Date: Tue, 15 Nov 2016 13:00:01 +0100 Subject: Initial commit --- expression.mli | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100755 expression.mli (limited to 'expression.mli') diff --git a/expression.mli b/expression.mli new file mode 100755 index 0000000..9888ece --- /dev/null +++ b/expression.mli @@ -0,0 +1,28 @@ +type t = + | Basic of ScTypes.types (** A direct type *) + | Formula of formula (** A formula *) + +and formula = + | Expression of ScTypes.expression (** A valid expression *) + | Error of int * UTF8.t (** When the expression cannot be parsed *) + + +(** Load an expression *) +val load: UTF8.t -> t + +val load_expr: t -> t + +val is_defined: t -> bool + +(** Evaluate the expression *) +val eval: t -> (ScTypes.refs -> ScTypes.types) -> ScTypes.result + +(** Collect all the cell referenced in the expression *) +val collect_sources: t -> Cell.Set.t + +(** Represent an expression *) +val show: t -> UTF8.t + +val shift: (int * int) -> t -> t + +val (=): t -> t -> bool -- cgit v1.2.3