aboutsummaryrefslogtreecommitdiff
path: root/frontend/partition.dcl
diff options
context:
space:
mode:
Diffstat (limited to 'frontend/partition.dcl')
-rw-r--r--frontend/partition.dcl15
1 files changed, 11 insertions, 4 deletions
diff --git a/frontend/partition.dcl b/frontend/partition.dcl
index 4204d6e..adf07cc 100644
--- a/frontend/partition.dcl
+++ b/frontend/partition.dcl
@@ -2,14 +2,21 @@ definition module partition
import syntax, transform
-partitionateFunctions :: !*{# FunDef} ![IndexRange] -> (!*{! Group}, !*{# FunDef})
+:: Component = { component_members :: !ComponentMembers }
+
+:: ComponentMembers
+ = ComponentMember !Int !ComponentMembers
+ | GeneratedComponentMember !Int !FunctionInfoPtr !ComponentMembers
+ | NoComponentMembers
+
+partitionateFunctions :: !*{# FunDef} ![IndexRange] -> (!*{!Component}, !*{# FunDef})
partitionateFunctions`
:: !*{# FunDef} ![IndexRange] !Index !Int !Int !*PredefinedSymbols !*VarHeap !*ExpressionHeap !*ErrorAdmin
- -> (!*{! Group}, !*{# FunDef}, !*PredefinedSymbols, !*VarHeap, !*ExpressionHeap, !*ErrorAdmin)
+ -> (!*{!Component}, !*{# FunDef}, !*PredefinedSymbols, !*VarHeap, !*ExpressionHeap, !*ErrorAdmin)
stripStrictLets :: !*{# FunDef} !*PredefinedSymbols !*VarHeap !*ExpressionHeap !*ErrorAdmin -> (!*{# FunDef}, !*PredefinedSymbols, !*VarHeap, !*ExpressionHeap, !*ErrorAdmin)
partitionateFunctions``
- :: !Int !Int ![FunctionInfoPtr] !*{# FunDef} ![Int] !Index !Int !Int !*FunctionHeap !*PredefinedSymbols !*VarHeap !*ExpressionHeap !*ErrorAdmin
- -> (!Int, ![Group], !*{# FunDef}, !*FunctionHeap, !*PredefinedSymbols, !*VarHeap, !*ExpressionHeap, !*ErrorAdmin)
+ :: !Int !Int !*{#FunDef} !ComponentMembers !Index !Int !Int !*FunctionHeap !*PredefinedSymbols !*VarHeap !*ExpressionHeap !*ErrorAdmin
+ -> (!Int, ![Component], !*{#FunDef}, !*FunctionHeap, !*PredefinedSymbols, !*VarHeap, !*ExpressionHeap, !*ErrorAdmin)