aboutsummaryrefslogtreecommitdiff
path: root/frontend/convertcases.icl
diff options
context:
space:
mode:
authorronny2002-09-20 11:10:02 +0000
committerronny2002-09-20 11:10:02 +0000
commit1e35c2b288932771c19470338c3e1fb21ff5c14c (patch)
tree1fe68847f8594372a0f8478db6e977185a3d4c5f /frontend/convertcases.icl
parentremoved unnecessary exports (diff)
moved var info definitions to the modules where they are used
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1204 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/convertcases.icl')
-rw-r--r--frontend/convertcases.icl26
1 files changed, 26 insertions, 0 deletions
diff --git a/frontend/convertcases.icl b/frontend/convertcases.icl
index 775ea55..d6482d7 100644
--- a/frontend/convertcases.icl
+++ b/frontend/convertcases.icl
@@ -126,6 +126,21 @@ convertCasesInBody (TransformedBody body) (Yes type) group_index common_defs cs
, rcs_expr_heap :: !.ExpressionHeap
}
+:: LetVarInfo =
+ { lvi_count :: !Int
+ , lvi_depth :: !Int
+ , lvi_new :: !Bool
+ , lvi_var :: !Ident
+ , lvi_expression :: !Expression
+ , lvi_previous :: ![PreviousLetVarInfo]
+ }
+
+:: PreviousLetVarInfo =
+ { plvi_count :: !Int
+ , plvi_depth :: !Int
+ , plvi_new :: !Bool
+ }
+
checkImportedSymbol :: SymbKind VarInfoPtr ([SymbKind], *VarHeap) -> ([SymbKind], *VarHeap)
checkImportedSymbol symb_kind symb_type_ptr (collected_imports, var_heap)
# (type_info, var_heap) = readPtr symb_type_ptr var_heap
@@ -421,6 +436,17 @@ where
only if the expr is neither used in the pattern nor in a surrounding expr.
*/
+:: LetExpressionStatus = LES_Untouched | LES_Moved | LES_Updated !Expression
+
+:: LetExpressionInfo =
+ { lei_count :: !Int
+ , lei_depth :: !Int
+ , lei_var :: !FreeVar
+ , lei_expression :: !Expression
+ , lei_status :: !LetExpressionStatus
+ , lei_type :: !AType
+ }
+
:: DistributeState =
{ ds_lets :: ![VarInfoPtr]
, ds_var_heap :: !.VarHeap