diff options
Diffstat (limited to 'backend')
-rw-r--r-- | backend/backendconvert.icl | 20 |
1 files changed, 19 insertions, 1 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) |