aboutsummaryrefslogtreecommitdiff
path: root/backend
diff options
context:
space:
mode:
authorronny2001-06-25 16:16:00 +0000
committerronny2001-06-25 16:16:00 +0000
commitc63878b450689f29ae03a04a9767a5d85893ead6 (patch)
treec60f752174d696652475503d0b9480c74983c4a3 /backend
parentalso add pattern variables in Cases to cp_local_vars (diff)
generate .depend for current dcl module
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@504 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'backend')
-rw-r--r--backend/backend.dcl4
-rw-r--r--backend/backend.icl4
-rw-r--r--backend/backendconvert.icl22
3 files changed, 20 insertions, 10 deletions
diff --git a/backend/backend.dcl b/backend/backend.dcl
index aa3e18d..3ed50f3 100644
--- a/backend/backend.dcl
+++ b/backend/backend.dcl
@@ -247,9 +247,9 @@ BEDeclareDynamicTypeSymbol :: !Int !Int !BackEnd -> BackEnd;
// void BEDeclareDynamicTypeSymbol (int typeIndex,int moduleIndex);
BEDynamicTempTypeSymbol :: !BackEnd -> (!BESymbolP,!BackEnd);
// BESymbolP BEDynamicTempTypeSymbol ();
-kBEVersionCurrent:==0x02000208;
+kBEVersionCurrent:==0x02000209;
kBEVersionOldestDefinition:==0x02000204;
-kBEVersionOldestImplementation:==0x02000208;
+kBEVersionOldestImplementation:==0x02000209;
kBEDebug:==1;
kPredefinedModuleIndex:==1;
BENoAnnot:==0;
diff --git a/backend/backend.icl b/backend/backend.icl
index 6fd12cc..3381d4a 100644
--- a/backend/backend.icl
+++ b/backend/backend.icl
@@ -671,9 +671,9 @@ BEDynamicTempTypeSymbol a0 = code {
ccall BEDynamicTempTypeSymbol ":I:I"
};
// BESymbolP BEDynamicTempTypeSymbol ();
-kBEVersionCurrent:==0x02000208;
+kBEVersionCurrent:==0x02000209;
kBEVersionOldestDefinition:==0x02000204;
-kBEVersionOldestImplementation:==0x02000208;
+kBEVersionOldestImplementation:==0x02000209;
kBEDebug:==1;
kPredefinedModuleIndex:==1;
BENoAnnot:==0;
diff --git a/backend/backendconvert.icl b/backend/backendconvert.icl
index a7f4f07..4cccf9b 100644
--- a/backend/backendconvert.icl
+++ b/backend/backendconvert.icl
@@ -464,13 +464,23 @@ where
// otherwise
= defineDclModule varHeap moduleIndex dclModule
+isSystem :: ModuleKind -> Bool
+isSystem MK_System
+ = True
+isSystem MK_Module
+ = False
+isSystem _
+ = abort "backendconvert:isSystem, unknown module kind"
+
declareCurrentDclModule :: IclModule DclModule Int -> BackEnder
-declareCurrentDclModule {icl_common} {dcl_name, dcl_functions, dcl_is_system, dcl_common} main_dcl_module_n
- = appBackEnd (BEDeclareDclModule main_dcl_module_n dcl_name.id_name dcl_is_system (size dcl_functions) (size icl_common.com_type_defs) (size dcl_common.com_cons_defs) (size dcl_common.com_selector_defs))
-
+declareCurrentDclModule _ {dcl_module_kind=MK_None} _
+ = identity
+declareCurrentDclModule {icl_common} {dcl_name, dcl_functions, dcl_module_kind, dcl_common} main_dcl_module_n
+ = appBackEnd (BEDeclareDclModule main_dcl_module_n dcl_name.id_name (isSystem dcl_module_kind) (size dcl_functions) (size icl_common.com_type_defs) (size dcl_common.com_cons_defs) (size dcl_common.com_selector_defs))
+
declareDclModule :: ModuleIndex DclModule -> BackEnder
-declareDclModule moduleIndex {dcl_name, dcl_common, dcl_functions, dcl_is_system}
- = appBackEnd (BEDeclareDclModule moduleIndex dcl_name.id_name dcl_is_system (size dcl_functions) (size dcl_common.com_type_defs) (size dcl_common.com_cons_defs) (size dcl_common.com_selector_defs))
+declareDclModule moduleIndex {dcl_name, dcl_common, dcl_functions, dcl_module_kind}
+ = appBackEnd (BEDeclareDclModule moduleIndex dcl_name.id_name (isSystem dcl_module_kind) (size dcl_functions) (size dcl_common.com_type_defs) (size dcl_common.com_cons_defs) (size dcl_common.com_selector_defs))
/*
defineCurrentDclModule :: VarHeap IclModule DclModule {#Int} -> BackEnder
defineCurrentDclModule varHeap {icl_common} {dcl_name, dcl_common, dcl_functions, dcl_is_system, dcl_conversions} typeConversions
@@ -478,7 +488,7 @@ defineCurrentDclModule varHeap {icl_common} {dcl_name, dcl_common, dcl_functions
o` defineCurrentDclModuleTypes dcl_common.com_cons_defs dcl_common.com_selector_defs dcl_common.com_type_defs typeConversions varHeap
*/
defineDclModule :: VarHeap ModuleIndex DclModule -> BackEnder
-defineDclModule varHeap moduleIndex {dcl_name, dcl_common, dcl_functions, dcl_is_system,dcl_instances}
+defineDclModule varHeap moduleIndex {dcl_name, dcl_common, dcl_functions,dcl_instances}
= declare moduleIndex varHeap dcl_common
o` declareFunTypes moduleIndex dcl_functions dcl_instances.ir_from varHeap