diff options
-rw-r--r-- | frontend/convertcases.dcl | 15 | ||||
-rw-r--r-- | frontend/convertcases.icl | 5 |
2 files changed, 5 insertions, 15 deletions
diff --git a/frontend/convertcases.dcl b/frontend/convertcases.dcl index 3bf46fa..6eb53ae 100644 --- a/frontend/convertcases.dcl +++ b/frontend/convertcases.dcl @@ -8,18 +8,3 @@ import syntax, transform convertCasesOfFunctions :: !*{! Group} !Int !{# {# FunType} } !{# CommonDefs} !*{#FunDef} !*{#{# CheckedTypeDef}} !ImportedConstructors !*VarHeap !*TypeHeaps !*ExpressionHeap -> (!ImportedFunctions, !*{! Group}, !*{#FunDef}, !*{#{# CheckedTypeDef}}, !ImportedConstructors, !*VarHeap, !*TypeHeaps, !*ExpressionHeap) - -newFunction :: !(Optional Ident) !FunctionBody ![FreeVar] ![AType] !AType !Int !(!Int, ![FunctionInfoPtr],!*FunctionHeap) - -> (! SymbIdent, !(!Int, ![FunctionInfoPtr],!*FunctionHeap)) - - -:: TypedVariable = - { tv_free_var :: !FreeVar - , tv_type :: !AType - } - -copyExpression :: ![TypedVariable] !Expression !*VarHeap -> (![Expression], ![TypedVariable], ![FreeVar], !Expression, !*VarHeap) - -addNewFunctionsToGroups :: !{#.CommonDefs} FunctionHeap ![FunctionInfoPtr] !Int !*{! Group} !*{#{# CheckedTypeDef}} !ImportedFunctions !*TypeHeaps !*VarHeap - -> (!*{! Group}, ![FunDef], !*{#{# CheckedTypeDef}}, !ImportedConstructors, !*TypeHeaps, !*VarHeap) - diff --git a/frontend/convertcases.icl b/frontend/convertcases.icl index c692a4d..775ea55 100644 --- a/frontend/convertcases.icl +++ b/frontend/convertcases.icl @@ -1729,6 +1729,11 @@ splitGuards (BasicPatterns basicType patterns) splitGuards (OverloadedListPatterns type decons_expr patterns) = [OverloadedListPatterns type decons_expr [pattern] \\ pattern <- patterns] +:: TypedVariable = + { tv_free_var :: !FreeVar + , tv_type :: !AType + } + copyExpression :: ![TypedVariable] !Expression !*VarHeap -> (![Expression], ![TypedVariable], ![FreeVar], !Expression, !*VarHeap) copyExpression bound_vars expr var_heap # var_heap = foldSt (\{tv_free_var={fv_info_ptr},tv_type} -> writePtr fv_info_ptr (VI_BoundVar tv_type)) bound_vars var_heap |