diff options
Diffstat (limited to 'backendC/CleanCompilerSources')
-rw-r--r-- | backendC/CleanCompilerSources/dumprestore.c | 888 | ||||
-rw-r--r-- | backendC/CleanCompilerSources/dumprestore.h | 8 |
2 files changed, 0 insertions, 896 deletions
diff --git a/backendC/CleanCompilerSources/dumprestore.c b/backendC/CleanCompilerSources/dumprestore.c deleted file mode 100644 index d4f201a..0000000 --- a/backendC/CleanCompilerSources/dumprestore.c +++ /dev/null @@ -1,888 +0,0 @@ -# include "system.h" -# include "syntaxtr.t" -# include "buildtree.h" - -# include "dumprestore.h" - -# ifdef DUMP_AND_RESTORE - -# include "comsupport.h" -# include "checker.h" - -# include "backendsupport.h" -# define Clean(ignore) -# include "backend.h" - - -Bool gDumpAndRestore = True; - -/* - Utilities - ========= -*/ -# define CopyContents(from, to) { *(to) = *(from);} - -/* - Memory management - ================= -*/ -static CleanString -ConvertCString (char *string) -{ - int length; - CleanString cleanString; - - length = strlen (string); - cleanString = (CleanString) CompAlloc (sizeof (CleanString) + length); - cleanString->length = length; - strncpy (cleanString->chars, string, length); - - return (cleanString); -} /* ConvertCString */ - -/* - Forward declarations - ==================== -*/ -static SymbDefP ConvertSymbDef (SymbDefP sdef); -static TypeNode ConvertTypeNode (TypeNode node); -static NodeP ConvertNode (NodeP node); -static NodeDefP ConvertNodeDefs (NodeDefP nodeDefs); -static int DefineLhsNode (NodeP node, int sequenceNumber); - -/* - Symbol - ====== -*/ - -static void -SetSymbolIndices (SymbolP symbol, int symbolIndex, int moduleIndex) -{ - unsigned int indices; - - Assert (0 <= moduleIndex && moduleIndex <= 0xFFFF); - Assert (0 <= symbolIndex && symbolIndex <= 0xFFFF); - Assert (symbol->symb_kind == definition); - - indices = symbolIndex | (moduleIndex << 16); - - symbol->symb_def->sdef_number = indices; -} /* SetSymbolIndices */ - -static void -GetSymbolIndices (SymbolP symbol, int *symbolIndexP, int *moduleIndexP) -{ - unsigned int indices; - - Assert (symbol->symb_kind == definition); - indices = (unsigned int) symbol->symb_def->sdef_number; - - *symbolIndexP = indices & 0xFFFF; - *moduleIndexP = (indices >> 16) & 0xFFFF; -} /* GetSymbolIndices */ - -static SymbolP -ConvertSymbol (SymbolP symbol) -{ - SymbolP copy; - int symbolIndex, moduleIndex; - - Assert (!IsConverted (symbol)); - switch (symbol->symb_kind) - { - case definition: - switch (symbol->symb_def->sdef_kind) - { - case ABSTYPE: - copy = BEDontCareDefinitionSymbol (); - break; - case TYPE: - case RECORDTYPE: - GetSymbolIndices (symbol, &symbolIndex, &moduleIndex); - copy = BETypeSymbol (symbolIndex, moduleIndex); - break; - case TYPESYN: - break; - case DEFRULE: - case IMPRULE: - case SYSRULE: /* +++ */ - GetSymbolIndices (symbol, &symbolIndex, &moduleIndex); - copy = BEFunctionSymbol (symbolIndex, moduleIndex); - break; - case CONSTRUCTOR: - GetSymbolIndices (symbol, &symbolIndex, &moduleIndex); - copy = BEConstructorSymbol (symbolIndex, moduleIndex); - break; - break; - case FIELDSELECTOR: - GetSymbolIndices (symbol, &symbolIndex, &moduleIndex); - copy = BEFieldSymbol (symbolIndex, moduleIndex); - break; - case MACRORULE: - break; - case OVERLOADEDRULE: - break; - case INSTANCE: - break; - case CLASS: - break; - case CLASSINSTANCE: - break; - case CLASSLIST: - break; - default: - Assert (False); - break; - } - break; - - /* literals */ - case int_denot: - case char_denot: - case real_denot: - case string_denot: - copy = BELiteralSymbol ((SymbKind) symbol->symb_kind, ConvertCString (symbol->symb_int)); - break; - - /* basic symbols +++ some of these should be moved to the predefined module */ - case int_type: - case bool_type: - case char_type: - case real_type: - case file_type: - case world_type: - case procid_type: - case redid_type: - case fun_type: - - case array_type: - case strict_array_type: - case unboxed_array_type: - - case tuple_type: - case tuple_symb: - copy = BEBasicSymbol ((SymbKind) symbol->symb_kind); - break; - - /* symbols from the predefined module */ - case list_type: - copy = BETypeSymbol (0, kPredefinedModuleIndex); - break; - case nil_symb: - copy = BEConstructorSymbol (0, kPredefinedModuleIndex); - break; - case cons_symb: - copy = BEConstructorSymbol (1, kPredefinedModuleIndex); - break; - - - default: - Assert (False); - break; - } - - return (copy); -} /* ConvertSymbol */ - -/* - TypeArg - ======= -*/ -static TypeArgs -ConvertTypeArgs (TypeArgs args) -{ - TypeArgs copy; - - if (args == NULL) - copy = BENoTypeArgs (); - else - copy = BETypeArgs (ConvertTypeNode (args->type_arg_node), ConvertTypeArgs (args->type_arg_next)); - - return (copy); -} /* ConvertTypeArgs */ - -/* - TypeNode - ======== -*/ -static TypeNode -ConvertTypeNode (TypeNode node) -{ - TypeNode copy; - - Assert (!IsConverted (node)); - - if (node->type_node_is_var) - { - Assert (node->type_node_arguments== NULL); - copy = BEVarTypeNode (ConvertCString (node->type_node_tv->tv_ident->ident_name)); - } - else - copy = BENormalTypeNode (ConvertSymbol (node->type_node_symbol), ConvertTypeArgs (node->type_node_arguments)); - - Assert (node->type_node_annotation == NoAnnot || node->type_node_annotation == StrictAnnot); - copy = BEAnnotateTypeNode (node->type_node_annotation, copy); - - return (copy); -} /* ConvertTypeNode */ - -/* - TypeAlt - ======= -*/ -static TypeAlt * -ConvertTypeAlt (TypeAlt *typeAlt) -{ - TypeAlt *copy; - - Assert (!IsConverted (typeAlt)); - - copy = BETypeAlt (ConvertTypeNode (typeAlt->type_alt_lhs), ConvertTypeNode (typeAlt->type_alt_rhs)); - - return (copy); -} /* ConvertTypeAlt */ - -/* - Arg - === -*/ -static ArgP -ConvertArgs (ArgP args) -{ - ArgP copy; - - if (args == NULL) - copy = BENoArgs (); - else - copy = BEArgs (ConvertNode (args->arg_node), ConvertArgs (args->arg_next)); - - return (copy); -} /* ConvertArgs */ - -/* - NodeIds -*/ - -static int -DefineNodeIds (NodeDefP nodeDef, int lhsOrRhs, int sequenceNumber) -{ - for ( ; nodeDef != NULL; nodeDef = nodeDef->def_next) - { - NodeIdP nodeId; - - nodeId = nodeDef->def_id; - nodeId->nid_scope = sequenceNumber; - - /* RWS ??? Assert (nodeId->nid_mark == 0); */ - - BEDeclareNodeId (sequenceNumber, lhsOrRhs, ConvertCString (nodeId->nid_ident->ident_name)); - sequenceNumber++; - } - return (sequenceNumber); -} /* DefineNodeIds */ - -static int -DefineLhsNodeId (NodeIdP nodeId, int sequenceNumber) -{ - Assert (nodeId->nid_refcount < 0); - Assert (nodeId->nid_node_def == NULL); - /* RWS ??? Assert (nodeId->nid_forward_node_id == NULL); */ - Assert (nodeId->nid_state.state_arity == 0); - Assert (nodeId->nid_state.state_kind == 0); - Assert (nodeId->nid_state.state_mark == 0); - Assert (nodeId->nid_state.state_object == 0); - Assert (nodeId->nid_state.state_type == 0); - - if (nodeId->nid_node == NULL) - { - nodeId->nid_scope = sequenceNumber; - BEDeclareNodeId (sequenceNumber, BELhsNodeId, ConvertCString (nodeId->nid_ident->ident_name)); - sequenceNumber++; - } - - return (sequenceNumber); -} /* DefineLhsNodeId */ - -static int -DefineLhsArgs (ArgP arg, int sequenceNumber) -{ - for ( ; arg != NULL; arg = arg->arg_next) - sequenceNumber = DefineLhsNode (arg->arg_node, sequenceNumber); - - return (sequenceNumber); -} /* DefineLhsArgs */ - -static int -DefineLhsNode (NodeP node, int sequenceNumber) -{ - switch (node->node_kind) - { - case NodeIdNode: - sequenceNumber = DefineLhsNodeId (node->node_node_id, sequenceNumber); - break; - case NormalNode: - break; - default: - Assert (False); - break; - } - - sequenceNumber = DefineLhsArgs (node->node_arguments, sequenceNumber); - - return (sequenceNumber); -} /* DefineLhsNode */ - -static NodeIdP -ConvertNodeId (NodeIdP nodeId) -{ - Assert (!IsConverted (nodeId)); - - return (BENodeId (nodeId->nid_scope)); -} /* ConvertNodeId*/ - - -/* - RuleAlt - ======= -*/ - -static RuleAlts -ConvertRuleAlt (RuleAltP alt) -{ - RuleAltP copy; - - int sequenceNumber; - - Assert (!IsConverted (alt)); - - Assert (alt->alt_kind == Contractum); - Assert (alt->alt_strict_node_ids == NULL); - - sequenceNumber = 0; - sequenceNumber = DefineNodeIds (alt->alt_lhs_defs, BELhsNodeId, sequenceNumber); - sequenceNumber = DefineNodeIds (alt->alt_rhs_defs, BERhsNodeId, sequenceNumber); - sequenceNumber = DefineLhsArgs (alt->alt_lhs_root->node_arguments, sequenceNumber); - - copy = BERuleAlt (alt->alt_line, ConvertNodeDefs (alt->alt_lhs_defs), ConvertNode (alt->alt_lhs_root), ConvertNodeDefs (alt->alt_rhs_defs), ConvertNode (alt->alt_rhs_root)); - - return (copy); -} /* ConvertRuleAlt */ - -static RuleAlts -ConvertRuleAlts (RuleAltP alts) -{ - RuleAltP copy; - - if (alts == NULL) - copy = BENoRuleAlts (); - else - copy = BERuleAlts (ConvertRuleAlt (alts), ConvertRuleAlts (alts->alt_next)); - - return (copy); -} /* ConvertRuleAlts */ - -/* - Node - ==== -*/ -static NodeP -ConvertNode (NodeP node) -{ - NodeP copy; - - Assert (node->node_annotation == NoAnnot); - switch (node->node_kind) - { - case NormalNode: - copy = BENormalNode (ConvertSymbol (node->node_symbol), ConvertArgs (node->node_arguments)); - break; - case NodeIdNode: - copy = BENodeIdNode (ConvertNodeId (node->node_node_id), ConvertArgs (node->node_arguments)); - break; - case SelectorNode: - copy = BESelectorNode (ConvertSymbol (node->node_symbol), ConvertArgs (node->node_arguments)); - break; - default: - Assert (False); - break; - } - - return (copy); -} /* ConvertNode */ - -/* - NodeDef - ======= -*/ -static NodeDefP -ConvertNodeDef (NodeDefP nodeDef) -{ - NodeDefP copy; - - Assert (nodeDef->def_mark == 0); - - copy = BENodeDef (nodeDef->def_id->nid_scope, ConvertNode (nodeDef->def_node)); - - return (copy); -} /* ConvertNodeDef */ - -static NodeDefP -ConvertNodeDefs (NodeDefP nodeDefs) -{ - if (nodeDefs == NULL) - return (BENoNodeDefs ()); - else - return (BENodeDefs (ConvertNodeDef (nodeDefs), ConvertNodeDefs (nodeDefs->def_next))); -} /* ConvertNodeDefs */ - -/* - ImpRule - ======= -*/ -static ImpRuleP -ConvertRule (ImpRuleP rule) -{ - ImpRuleP copy; - SymbolP functionSymbol; - int symbolIndex, moduleIndex; - - Assert (!IsConverted (rule)); - Assert (rule->rule_mark == RULE_CHECKED_MASK); - - functionSymbol = rule->rule_root->node_symbol; - - GetSymbolIndices (functionSymbol, &symbolIndex, &moduleIndex); - Assert (moduleIndex == kIclModuleIndex); - copy = BERule (symbolIndex, ConvertTypeAlt (rule->rule_type), ConvertRuleAlts (rule->rule_alts)); - - return (copy); -} /* ConvertRule */ - -static ImpRuleP -ConvertRules (ImpRuleP rules) -{ - ImpRuleP copy; - - if (rules == NULL) - copy = BENoRules (); - else - copy = BERules (ConvertRule (rules), ConvertRules (rules->rule_next)); - - return (copy); -} /* ConvertRules */ - -static void -DefineRuleType (int functionIndex, int moduleIndex, RuleTypes ruleType) -{ - SymbolP functionSymbol; - - Assert (!IsConverted (ruleType)); - - // +++ move to count - functionSymbol = ruleType->rule_type_root->type_node_symbol; - SetSymbolIndices (functionSymbol, functionIndex, moduleIndex); - - Assert (functionSymbol->symb_kind == definition); - - BEDeclareRuleType (functionIndex, moduleIndex, ConvertCString (functionSymbol->symb_def->sdef_ident->ident_name)); - BEDefineRuleType (functionIndex, moduleIndex, ConvertTypeAlt (ruleType->rule_type_rule)); -} /* DefineRuleType */ - -static void -DefineRuleTypes (SymbolP allSymbols, char *moduleName) -{ - SymbolP symbol; - - for (symbol = allSymbols; symbol != NULL; symbol = symbol->symb_next) - { - if (symbol->symb_kind == definition) - { - SymbDef sdef; - - sdef = symbol->symb_def; - if ((sdef->sdef_kind == DEFRULE || sdef->sdef_kind == SYSRULE) && sdef->sdef_isused - && sdef->sdef_module == moduleName) - { - int functionIndex, moduleIndex; - - GetSymbolIndices (symbol, &functionIndex, &moduleIndex); - DefineRuleType (functionIndex, moduleIndex, sdef->sdef_rule_type); - } - - } - } -} /* DefineRuleTypes */ - -static void -DeclareFunctions (SymbDefP sdefs) -{ - int i; - SymbDefP sdef; - - i = 0; - for (sdef = sdefs; sdef != NULL; sdef = sdef->sdef_next_scc) - { - Node root; - ImpRuleP rule; - Symbol symbol; - - Assert (sdef->sdef_kind == IMPRULE); - rule = sdef->sdef_rule; - - root = rule->rule_root; - Assert (root->node_kind == NormalNode); - symbol = root->node_symbol; - Assert (symbol->symb_kind == definition); - - SetSymbolIndices (symbol, i, kIclModuleIndex); - - Assert (sdef->sdef_kind == IMPRULE); - Assert (sdef->sdef_mark == 0); - Assert (sdef->sdef_over_arity == 0); -// Assert (!sdef->sdef_exported); - Assert (sdef->sdef_arfun == NoArrayFun); - - // +++ hack - if (sdef->sdef_exported) - sdef->sdef_ancestor = -sdef->sdef_ancestor-1; - - BEDeclareFunction (ConvertCString (sdef->sdef_ident->ident_name), sdef->sdef_arity, i, sdef->sdef_ancestor); - - i++; - } -} /* DeclareFunctions */ - -static TypeVar -ConvertTypeVar (TypeVar typeVar) -{ - return (BETypeVar (ConvertCString (typeVar->tv_ident->ident_name))); -} /* ConvertTypeVar */ - -static TypeVarList -ConvertTypeVarList (TypeVarList typeVarList) -{ - if (typeVarList == NULL) - return (BENoTypeVars ()); - else - return (BETypeVars (ConvertTypeVar (typeVarList->tvl_elem), ConvertTypeVarList (typeVarList->tvl_next))); -} /* ConvertTypeVarList */ - -static FlatType -ConvertFlatType (FlatType flatType) -{ - BEFlatType (ConvertSymbol (flatType->ft_symbol), ConvertTypeVarList (flatType->ft_arguments)); -} /* ConvertFlatType */ - -static void -SequenceTypesAndConstructors (Types types, int moduleIndex, int *nTypesP, int *nConstructorsP, int *nFieldsP) -{ - int typeIndex, constructorIndex, fieldIndex; - - typeIndex = 0; - constructorIndex = 0; - fieldIndex = 0; - - for (; types != NULL; types = types->type_next) - { - SymbolP typeSymbol; - ConstructorList constructor; - - typeSymbol = types->type_lhs->ft_symbol; - SetSymbolIndices (typeSymbol, typeIndex++, moduleIndex); - - if (types->type_nr_of_constructors == 0) - { - SymbolP constructorSymbol; - FieldList field; - - constructor = types->type_constructors; - - Assert (!constructor->cl_constructor->type_node_is_var); - Assert (constructor->cl_fields != NULL); - /* Assert (constructor->cl_next == NULL); ??? unitialised */ - constructorSymbol = constructor->cl_constructor->type_node_symbol; - - SetSymbolIndices (constructorSymbol, constructorIndex++, moduleIndex); - - for (field = types->type_fields; field != NULL; field = field->fl_next) - { - SymbolP fieldSymbol; - - fieldSymbol = field->fl_symbol; - - SetSymbolIndices (fieldSymbol, fieldIndex++, moduleIndex); - } - } - else - { - for (constructor = types->type_constructors; constructor != NULL; constructor = constructor->cl_next) - { - SymbolP constructorSymbol; - - Assert (!constructor->cl_constructor->type_node_is_var); - Assert (constructor->cl_fields == NULL); - constructorSymbol = constructor->cl_constructor->type_node_symbol; - - SetSymbolIndices (constructorSymbol, constructorIndex++, moduleIndex); - } - } - } - *nTypesP = typeIndex; - *nConstructorsP = constructorIndex; - *nFieldsP = fieldIndex; -} /* SequenceTypesAndConstructors */ - -static int -SequenceRuleTypes (SymbolP allSymbols, int moduleIndex, char *moduleName) -{ - int nRuleTypes; - SymbolP symbol; - - nRuleTypes = 0; - for (symbol = allSymbols; symbol != NULL; symbol = symbol->symb_next) - { - if (symbol->symb_kind == definition) - { - SymbDef sdef; - - sdef = symbol->symb_def; - if ((sdef->sdef_kind == DEFRULE || sdef->sdef_kind == SYSRULE) && sdef->sdef_isused - && sdef->sdef_module == moduleName) - { - SetSymbolIndices (symbol, nRuleTypes, moduleIndex); - nRuleTypes++; - } - - } - } - - return (nRuleTypes); -} /* SequenceRuleTypes */ - -static ConstructorList -ConvertConstructor (ConstructorList constructor) -{ - SymbolP constructorSymbol; - ConstructorList copy; - int constructorIndex, moduleIndex; - - Assert (!constructor->cl_constructor->type_node_is_var); - constructorSymbol = constructor->cl_constructor->type_node_symbol; - - GetSymbolIndices (constructorSymbol, &constructorIndex, &moduleIndex); - - BEDeclareConstructor (constructorIndex, moduleIndex, ConvertCString (constructorSymbol->symb_def->sdef_ident->ident_name)); - copy = BEConstructor (ConvertTypeNode (constructor->cl_constructor)); - - return (copy); -} /* ConvertConstructor */ - -static ConstructorList -ConvertConstructors (ConstructorList constructors) -{ - ConstructorList copy; - - if (constructors == NULL) - copy = BENoConstructors (); - else - copy = BEConstructors (ConvertConstructor (constructors), ConvertConstructors (constructors->cl_next)); - - return (copy); -} /* ConvertConstructors */ - -static FieldList -ConvertField (FieldList field) -{ - SymbolP fieldSymbol; - FieldList copy; - int fieldIndex, moduleIndex; - - fieldSymbol = field->fl_symbol; - - GetSymbolIndices (fieldSymbol, &fieldIndex, &moduleIndex); - - BEDeclareField (fieldIndex, moduleIndex, ConvertCString (fieldSymbol->symb_def->sdef_ident->ident_name)); - copy = BEField (fieldIndex, moduleIndex, ConvertTypeNode (field->fl_type)); - - return (copy); -} /* ConvertField */ - -static FieldList -ConvertFields (FieldList fields) -{ - FieldList copy; - - if (fields == NULL) - copy = BENoFields (); - else - copy = BEFields (ConvertField (fields), ConvertFields (fields->fl_next)); - - return (copy); -} /* ConvertFields */ - -static Types -ConvertType (Types type) -{ - SymbolP typeSymbol; - Types copy; - int typeIndex, moduleIndex; - - typeSymbol = type->type_lhs->ft_symbol; - GetSymbolIndices (typeSymbol, &typeIndex, &moduleIndex); - - Assert (typeSymbol->symb_kind == definition); - - BEDeclareType (typeIndex, moduleIndex, ConvertCString (typeSymbol->symb_def->sdef_ident->ident_name)); - - if (type->type_nr_of_constructors == 0) - copy = BERecordType (BEFlatType (BETypeSymbol (typeIndex, moduleIndex), NULL), ConvertTypeNode (type->type_constructors->cl_constructor), ConvertFields (type->type_fields)); - else - copy = BEAlgebraicType (BEFlatType (BETypeSymbol (typeIndex, moduleIndex), NULL), ConvertConstructors (type->type_constructors)); - - return (copy); -} /* ConvertType */ - -static Types -ConvertTypes (Types types) -{ - Types copy; - - if (types == NULL) - copy = BENoTypes (); - else - copy = BETypes (ConvertType (types), ConvertTypes (types->type_next)); - - return (copy); -} /* ConvertTypes */ - - -/* - ImpMod - ====== -*/ - -static void -ConvertIclModule (ImpMod module) -{ - SymbDefP sdef; - int nFunctions, nTypes, nConstructors, nFields; - -// Assert (module->im_def_module == NULL); -// Assert (module->im_main); - - nFunctions = 0; - for (sdef = scc_dependency_list; sdef != NULL; sdef = sdef->sdef_next_scc) - nFunctions++; - - SequenceTypesAndConstructors (module->im_types, kIclModuleIndex, &nTypes, &nConstructors, &nFields); - - BEDeclareIclModule (ConvertCString (module->im_name->symb_ident->ident_name), nFunctions, nTypes, nConstructors, nFields); - - ConvertTypes (module->im_types); - - DeclareFunctions (scc_dependency_list); - BEDefineRules (ConvertRules (module->im_rules)); -} /* ConvertIclModule */ - -/* - DefMod - ====== -*/ - -static int -CountDclModules (DefMod module, int moduleIndex) -{ - ImportList import; - - if ((int) module->dm_abs_types == 1) - return (moduleIndex); - - module->dm_abs_types = (void *) 1; - module->dm_syn_types = (void *) moduleIndex++; - - for (import = module->dm_imports; import != NULL; import = import->ilist_next) - moduleIndex = CountDclModules (import->ilist_def, moduleIndex); - - return (moduleIndex); -} /* CountDclModules */ - -static void -ConvertDclModule (DefMod module, SymbolP allSymbols) -{ - int moduleIndex, functionIndex, nTypes, nConstructors, nFields; - char *moduleName; - ImportList import; - - if ((unsigned int) module->dm_abs_types == 2) - return; - - Assert ((unsigned int) module->dm_abs_types == 1); - module->dm_abs_types = (void *) 2; - - for (import = module->dm_imports; import != NULL; import = import->ilist_next) - ConvertDclModule (import->ilist_def, allSymbols); - - moduleName = module->dm_name->symb_ident->ident_name; - moduleIndex = (int) module->dm_syn_types; - - functionIndex = SequenceRuleTypes (allSymbols, moduleIndex, moduleName); - - SequenceTypesAndConstructors (module->dm_types, moduleIndex, &nTypes, &nConstructors, &nFields); - - BEDeclareDclModule (moduleIndex, ConvertCString (module->dm_name->symb_ident->ident_name), False, - functionIndex, nTypes, nConstructors, nFields); - - - DefineRuleTypes (allSymbols, moduleName); - -# if 0 - functionIndex = 0; - functionIndex = DefineRuleTypes (moduleIndex, module->dm_rules, functionIndex); - functionIndex = DefineInstances (moduleIndex, module->dm_instances, functionIndex); -# endif - - ConvertTypes (module->dm_types); -} /* ConvertDclModule */ - -static void -ConvertModules (ImpMod module) -{ - int n; - ImportList import; - - n = 2; /* 2: icl + predef */ - for (import = module->im_imports; import != NULL; import = import->ilist_next) - n = CountDclModules (import->ilist_def, n); - - BEDeclareModules (n); - - // +++ temporary test - BEDeclarePredefinedModule (1, 2); - BEPredefineTypeSymbol (0, kPredefinedModuleIndex, list_type); - BEPredefineConstructorSymbol (0, kPredefinedModuleIndex, nil_symb); - BEPredefineConstructorSymbol (1, kPredefinedModuleIndex, cons_symb); - - for (import = module->im_imports; import != NULL; import = import->ilist_next) - ConvertDclModule (import->ilist_def, module->im_symbols); - - ConvertIclModule (module); -} /* ConvertModules */ - -void -CoclBackEnd (ImpMod module, char *outputFileName) -{ - BackEnd backEnd; - - backEnd = BEInit (0); - - ConvertModules (module); - - CompFree (); - InitStorage (); - - BEGenerateCode (ConvertCString (outputFileName)); - - BEFree (backEnd); -} /* CoclBackEnd */ - -# endif /* DUMP_AND_RESTORE */
\ No newline at end of file diff --git a/backendC/CleanCompilerSources/dumprestore.h b/backendC/CleanCompilerSources/dumprestore.h deleted file mode 100644 index 1bf6cc3..0000000 --- a/backendC/CleanCompilerSources/dumprestore.h +++ /dev/null @@ -1,8 +0,0 @@ -# undef DUMP_AND_RESTORE - -# ifdef DUMP_AND_RESTORE - -extern Bool gDumpAndRestore; -void CoclBackEnd (ImpMod modulem, char *outputFileName); - -# endif /* DUMP_AND_RESTORE */
\ No newline at end of file |