aboutsummaryrefslogtreecommitdiff
path: root/expression.mli
diff options
context:
space:
mode:
Diffstat (limited to 'expression.mli')
-rwxr-xr-xexpression.mli28
1 files changed, 28 insertions, 0 deletions
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