aboutsummaryrefslogblamecommitdiff
path: root/frontend/checkFunctionBodies.dcl
blob: fd75a040c24d6904070f1dfdfa74c5e03ebaf8ed (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11









                                                                 

                                                                                                                      







                                         
                                                                                                             
                                                                                                                   
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}
// MV ...
 	,	es_dynamic_expr_count	:: !Int				// used to give each dynamic expr an unique id
// ... MV
	}
	
::	ExpressionInput =
	{	ei_expr_level	:: !Level
	,	ei_fun_index	:: !Index
	,	ei_fun_level	:: !Level
	,	ei_mod_index	:: !Index
	}

checkFunctionBodies :: !FunctionBody !Ident !.ExpressionInput !*ExpressionState !*ExpressionInfo !*CheckState
					-> (FunctionBody,[FreeVar],!.ExpressionState,.ExpressionInfo,!.CheckState);