aboutsummaryrefslogtreecommitdiff
path: root/frontend/checkFunctionBodies.dcl
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/checkFunctionBodies.dcl')
-rw-r--r--frontend/checkFunctionBodies.dcl22
1 files changed, 22 insertions, 0 deletions
diff --git a/frontend/checkFunctionBodies.dcl b/frontend/checkFunctionBodies.dcl
new file mode 100644
index 0000000..58ef680
--- /dev/null
+++ b/frontend/checkFunctionBodies.dcl
@@ -0,0 +1,22 @@
+definition module checkFunctionBodies
+
+import syntax, checksupport
+
+:: ExpressionState =
+ { es_expr_heap :: !.ExpressionHeap
+ , es_var_heap :: !.VarHeap
+ , es_type_heaps :: !.TypeHeaps
+ , es_calls :: ![FunCall]
+ , es_dynamics :: ![ExprInfoPtr]
+ , es_fun_defs :: !.{# FunDef}
+ }
+
+:: ExpressionInput =
+ { ei_expr_level :: !Level
+ , ei_fun_index :: !Index
+ , ei_fun_level :: !Level
+ , ei_mod_index :: !Index
+ }
+
+checkFunctionBodies :: !FunctionBody !.ExpressionInput !*ExpressionState !*ExpressionInfo !*CheckState
+ -> (FunctionBody,[FreeVar],!.ExpressionState,.ExpressionInfo,!.CheckState);