diff options
Diffstat (limited to 'backend/backendconvert.icl')
-rw-r--r-- | backend/backendconvert.icl | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/backend/backendconvert.icl b/backend/backendconvert.icl index 357209f..52f2c77 100644 --- a/backend/backendconvert.icl +++ b/backend/backendconvert.icl @@ -6,11 +6,10 @@ implementation module backendconvert import code from library "backend_library" import StdEnv -// import StdDebug - import frontend import backend import backendsupport, backendpreprocess +import partition // trace macro (-*->) infixl @@ -489,7 +488,21 @@ backEndConvertModulesH predefs {fe_icl = = (backEnd -*-> "backend done") where functionIndices - = flatten [[(componentIndex, member) \\ member <- group.group_members] \\ group <-: fe_components & componentIndex <- [1..]] + = function_indices 0 fe_components + + function_indices i components + | i<size components + = function_indices2 components.[i].component_members i components + = [] + + function_indices2 (ComponentMember member members) i components + #! inc_i = i+1 + = [(inc_i,member) : function_indices2 members i components] + function_indices2 (GeneratedComponentMember member _ members) i components + #! inc_i = i+1 + = [(inc_i,member) : function_indices2 members i components] + function_indices2 NoComponentMembers i components + = function_indices (i+1) components declareOtherDclModules :: {#DclModule} Int NumberSet -> BackEnder declareOtherDclModules dcls main_dcl_module_n used_module_numbers |