aboutsummaryrefslogtreecommitdiff
path: root/frontend/checkFunctionBodies.dcl
diff options
context:
space:
mode:
authormartinw2000-10-27 14:54:15 +0000
committermartinw2000-10-27 14:54:15 +0000
commit6ceea4d62ef4d5d77e4337235d7b8a4b2557ce9a (patch)
treef329015918937b00433309d34714575e6198b8ef /frontend/checkFunctionBodies.dcl
parentbug fix in copying abstract types from dcl module to icl module (diff)
moving huge part of code out of check into new module checkFunctionBodies
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@272 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
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);