diff options
-rw-r--r-- | backend/backendconvert.icl | 20 | ||||
-rw-r--r-- | backendC/CleanCompilerSources/backend.dcl | 8 | ||||
-rw-r--r-- | backendC/CleanCompilerSources/backend.h | 11 | ||||
-rw-r--r-- | backendC/backend.link | 4 | ||||
-rw-r--r-- | coclmaindll/backend.dll | bin | 1409444 -> 1409468 bytes |
5 files changed, 37 insertions, 6 deletions
diff --git a/backend/backendconvert.icl b/backend/backendconvert.icl index ecca95b..bef3523 100644 --- a/backend/backendconvert.icl +++ b/backend/backendconvert.icl @@ -304,6 +304,9 @@ beDefineImportedObjsAndLibs :== beApFunction2 BEDefineImportedObjsAndLibs beAbsType :== beApFunction1 BEAbsType +// temporary hack +beDynamicTempTypeSymbol + :== beFunction0 BEDynamicTempTypeSymbol notYetImplementedExpr :: Expression notYetImplementedExpr @@ -370,6 +373,11 @@ backEndConvertModulesH predefs {fe_icl = fe_icl =: {icl_name, icl_functions, icl = declareCurrentDclModule fe_icl fe_dcls.[main_dcl_module_n] main_dcl_module_n (backEnd -*-> "declareCurrentDclModule") #! backEnd = declareOtherDclModules fe_dcls main_dcl_module_n icl_used_module_numbers (backEnd -*-> "declareOtherDclModules") + +// tempory hack + #! backEnd + = declareDynamicTemp predefs (backEnd -*-> "declareDynamicTemp") + #! backEnd = defineDclModule varHeap main_dcl_module_n fe_dcls.[main_dcl_module_n] (backEnd -*-> "defineDclModule(cIclMoIndex)") #! backEnd @@ -834,6 +842,10 @@ convertSelector moduleIndex selectorDefs varHeap {fs_index} _ -> (selectorDef.sd_type,be)) +declareDynamicTemp :: PredefinedSymbols -> BackEnder +declareDynamicTemp predefs + = appBackEnd (BEDeclareDynamicTypeSymbol predefs.[PD_StdDynamics].pds_def predefs.[PD_DynamicTemp].pds_def) + predefineSymbols :: DclModule PredefinedSymbols -> BackEnder predefineSymbols {dcl_common} predefs = appBackEnd (BEDeclarePredefinedModule (size dcl_common.com_type_defs) (size dcl_common.com_cons_defs)) @@ -1044,7 +1056,8 @@ convertBasicTypeKind BT_File convertBasicTypeKind BT_World = BEWorldType convertBasicTypeKind BT_Dynamic - = BEDynamicType + = undef <<- "convertBasicTypeKind (BT_Dynamic) shouldn't occur" +// = BEDynamicType convertBasicTypeKind (BT_String _) = undef <<- "convertBasicTypeKind (BT_String _) shouldn't occur" @@ -1080,6 +1093,11 @@ convertAnnotTypeNode {at_type, at_annotation, at_attribute} convertTypeNode :: Type -> BEMonad BETypeNodeP convertTypeNode (TB (BT_String type)) = convertTypeNode type +// tempory hack +convertTypeNode (TB BT_Dynamic) + = beNormalTypeNode beDynamicTempTypeSymbol beNoTypeArgs +convertTypeNode (TB basicType) + = beNormalTypeNode (beBasicSymbol (convertBasicTypeKind basicType)) beNoTypeArgs convertTypeNode (TB basicType) = beNormalTypeNode (beBasicSymbol (convertBasicTypeKind basicType)) beNoTypeArgs convertTypeNode (TA typeSymbolIdent typeArgs) diff --git a/backendC/CleanCompilerSources/backend.dcl b/backendC/CleanCompilerSources/backend.dcl index c346245..af49d08 100644 --- a/backendC/CleanCompilerSources/backend.dcl +++ b/backendC/CleanCompilerSources/backend.dcl @@ -220,9 +220,13 @@ BEDefineImportedObjsAndLibs :: !BEStringListP !BEStringListP !BackEnd -> BackEnd // void BEDefineImportedObjsAndLibs(BEStringListP objs,BEStringListP libs); BESetMainDclModuleN :: !Int !BackEnd -> BackEnd; // void BESetMainDclModuleN(int main_dcl_module_n_parameter); -kBEVersionCurrent:==0x02000204; +BEDeclareDynamicTypeSymbol :: !Int !Int !BackEnd -> BackEnd; +// void BEDeclareDynamicTypeSymbol(int typeIndex,int moduleIndex); +BEDynamicTempTypeSymbol :: !BackEnd -> (!BESymbolP,!BackEnd); +// BESymbolP BEDynamicTempTypeSymbol(); +kBEVersionCurrent:==0x02000206; kBEVersionOldestDefinition:==0x02000204; -kBEVersionOldestImplementation:==0x02000204; +kBEVersionOldestImplementation:==0x02000206; kBEDebug:==1; kPredefinedModuleIndex:==1; BENoAnnot:==0; diff --git a/backendC/CleanCompilerSources/backend.h b/backendC/CleanCompilerSources/backend.h index 5756288..23d7b8c 100644 --- a/backendC/CleanCompilerSources/backend.h +++ b/backendC/CleanCompilerSources/backend.h @@ -1,8 +1,8 @@ /* version info */ -# define kBEVersionCurrent 0x02000205 +# define kBEVersionCurrent 0x02000206 # define kBEVersionOldestDefinition 0x02000204 -# define kBEVersionOldestImplementation 0x02000204 +# define kBEVersionOldestImplementation 0x02000206 # define kBEDebug 1 @@ -427,3 +427,10 @@ Clean (BEDefineImportedObjsAndLibs :: BEStringListP BEStringListP BackEnd -> Bac void BESetMainDclModuleN (int main_dcl_module_n_parameter); Clean (BESetMainDclModuleN :: Int BackEnd -> BackEnd) + +// temporary hack +void BEDeclareDynamicTypeSymbol (int typeIndex, int moduleIndex); +Clean (BEDeclareDynamicTypeSymbol :: Int Int BackEnd -> BackEnd) + +BESymbolP BEDynamicTempTypeSymbol (void); +Clean (BEDynamicTempTypeSymbol :: BackEnd -> (BESymbolP, BackEnd)) diff --git a/backendC/backend.link b/backendC/backend.link index c94da1b..5bb5d44 100644 --- a/backendC/backend.link +++ b/backendC/backend.link @@ -90,4 +90,6 @@ /EXPORT: BEGetVersion /EXPORT: BEAbsType /EXPORT: BESwapTypes -/EXPORT: BESetMainDclModuleN
\ No newline at end of file +/EXPORT: BESetMainDclModuleN +/EXPORT: BEDeclareDynamicTypeSymbol +/EXPORT: BEDynamicTempTypeSymbol diff --git a/coclmaindll/backend.dll b/coclmaindll/backend.dll Binary files differindex e638682..308a796 100644 --- a/coclmaindll/backend.dll +++ b/coclmaindll/backend.dll |