From 6ceea4d62ef4d5d77e4337235d7b8a4b2557ce9a Mon Sep 17 00:00:00 2001 From: martinw Date: Fri, 27 Oct 2000 14:54:15 +0000 Subject: 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 --- frontend/checksupport.dcl | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'frontend/checksupport.dcl') diff --git a/frontend/checksupport.dcl b/frontend/checksupport.dcl index d355952..e52b4d2 100644 --- a/frontend/checksupport.dcl +++ b/frontend/checksupport.dcl @@ -134,15 +134,27 @@ instance toIdent SymbIdent, TypeSymbIdent, BoundVar, TypeVar, ATypeVar, Ident instance toInt STE_Kind instance <<< STE_Kind, IdentPos, Declaration +:: ExpressionInfo = + { ef_type_defs :: !.{# CheckedTypeDef} + , ef_selector_defs :: !.{# SelectorDef} + , ef_cons_defs :: !.{# ConsDef} + , ef_member_defs :: !.{# MemberDef} + , ef_class_defs :: !.{# ClassDef} + , ef_modules :: !.{# DclModule} + , ef_is_macro_fun :: !Bool + } + +checkLocalFunctions :: !Index !Level !LocalDefs !*{#FunDef} !*ExpressionInfo !*Heaps !*CheckState + -> (!.{#FunDef},!.ExpressionInfo,!.Heaps,!.CheckState); + +convertIndex :: !Index !Index !(Optional ConversionTable) -> !Index + +retrieveGlobalDefinition :: !SymbolTableEntry !STE_Kind !Index -> (!Index, !Index) retrieveAndRemoveImportsFromSymbolTable :: ![(.a,.Declarations)] [Declaration] *(Heap SymbolTableEntry) -> ([Declaration],.Heap SymbolTableEntry); -//retrieveAndRemoveImportsOfModuleFromSymbolTable :: ![.Declaration] ![.Declaration] ![.Declaration] !*(Heap SymbolTableEntry) -> ([Declaration],.Heap SymbolTableEntry); -//retrieveAndRemoveImportsOfModuleFromSymbolTable :: !{!.Declaration} ![.Declaration] ![.Declaration] !*(Heap SymbolTableEntry) -> ([Declaration],.Heap SymbolTableEntry); addLocalFunctionDefsToSymbolTable :: !Level !Index !Index !u:{#FunDef} !*SymbolTable !*ErrorAdmin -> (!u:{# FunDef}, !*SymbolTable, !*ErrorAdmin) addDefToSymbolTable :: !Level !Index !Ident !STE_Kind !*SymbolTable !*ErrorAdmin -> (!* SymbolTable, !*ErrorAdmin) -//addDeclaredSymbolsToSymbolTable :: .Bool .Int ![.Declaration] ![.Declaration] !*CheckState -> .CheckState; addDeclaredSymbolsToSymbolTable :: .Bool .Int ![.Declaration] !{!.Declaration} !*CheckState -> .CheckState; addDeclaredSymbolsToSymbolTable2 :: .Bool .Int !{!.Declaration} !{!.Declaration} !*CheckState -> .CheckState; -//addLocalSymbolsToSymbolTable :: ![.Declaration] Int !*CheckState -> .CheckState; addFieldToSelectorDefinition :: !Ident (Global .Int) !*CheckState -> .CheckState; addGlobalDefinitionsToSymbolTable :: ![.Declaration] !*CheckState -> .CheckState; retrieveImportsFromSymbolTable :: ![Import ImportDeclaration] ![Declaration] !*{#DclModule} !*(Heap SymbolTableEntry) -> *(![Declaration],!*{#DclModule},!*Heap SymbolTableEntry); @@ -151,3 +163,7 @@ removeDeclarationsFromSymbolTable :: ![Declaration] !Int !*(Heap SymbolTableEntr removeLocalIdentsFromSymbolTable :: .Int !.[Ident] !*(Heap SymbolTableEntry) -> .Heap SymbolTableEntry; removeIdentFromSymbolTable :: !.Int !Ident !*(Heap SymbolTableEntry) -> .Heap SymbolTableEntry; removeImportsAndLocalsOfModuleFromSymbolTable :: !Declarations !*(Heap SymbolTableEntry) -> .Heap SymbolTableEntry +removeLocalsFromSymbolTable :: !Level ![Ident] !LocalDefs !u:{# FunDef} !*(Heap SymbolTableEntry) + -> (!u:{# FunDef}, !.Heap SymbolTableEntry) + +newFreeVariable :: !FreeVar ![FreeVar] ->(!Bool, ![FreeVar]) -- cgit v1.2.3