aboutsummaryrefslogtreecommitdiff
path: root/frontend
diff options
context:
space:
mode:
authorjohnvg2002-02-08 13:44:23 +0000
committerjohnvg2002-02-08 13:44:23 +0000
commit24490c83f8cf7d29df9e80a3deccb4684b74b065 (patch)
tree8e171e2b56e99fc7377eaf77ebf6f8d33022b2e6 /frontend
parent- cosmetic changes: made some String-representation of type names symbolic (diff)
add missing alternatives in equal_strictness_lists and
move the function to module containers git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1007 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend')
-rw-r--r--frontend/comparedefimp.icl9
-rw-r--r--frontend/containers.dcl3
-rw-r--r--frontend/containers.icl20
3 files changed, 22 insertions, 10 deletions
diff --git a/frontend/comparedefimp.icl b/frontend/comparedefimp.icl
index 9580c2f..7084aec 100644
--- a/frontend/comparedefimp.icl
+++ b/frontend/comparedefimp.icl
@@ -235,15 +235,6 @@ where
compare strictness1 strictness2 comp_st
= (equal_strictness_lists strictness1 strictness2,comp_st)
-equal_strictness_lists NotStrict NotStrict
- = True
-equal_strictness_lists NotStrict (Strict s)
- = s==0
-equal_strictness_lists (Strict s) NotStrict
- = s==0
-equal_strictness_lists (Strict s1) (Strict s2)
- = s1==s2
-
instance compare AttributeVar
where
compare {av_info_ptr = dcl_info_ptr} {av_info_ptr = icl_info_ptr} comp_st=:{comp_attr_var_heap}
diff --git a/frontend/containers.dcl b/frontend/containers.dcl
index 3b66e02..3662108 100644
--- a/frontend/containers.dcl
+++ b/frontend/containers.dcl
@@ -32,8 +32,9 @@ first_n_strict :: !Int -> StrictnessList
insert_n_strictness_values_at_beginning :: !Int !StrictnessList -> StrictnessList
insert_n_lazy_values_at_beginning :: !Int !StrictnessList -> StrictnessList
arg_strictness_annotation :: !Int !StrictnessList -> Annotation;
-is_not_strict :: !StrictnessList -> Bool
arg_is_strict :: !Int !StrictnessList -> Bool;
+is_not_strict :: !StrictnessList -> Bool
+equal_strictness_lists :: !StrictnessList !StrictnessList -> Bool
add_next_strict :: !Int !Int !StrictnessList -> (!Int,!Int,!StrictnessList)
add_next_not_strict :: !Int !Int !StrictnessList -> (!Int,!Int,!StrictnessList)
append_strictness :: !Int !StrictnessList -> StrictnessList
diff --git a/frontend/containers.icl b/frontend/containers.icl
index 138fc9d..dd4e66e 100644
--- a/frontend/containers.icl
+++ b/frontend/containers.icl
@@ -286,6 +286,26 @@ is_not_strict NotStrict = True
is_not_strict (Strict s) = s==0
is_not_strict (StrictList s l) = s==0 && is_not_strict l
+equal_strictness_lists :: !StrictnessList !StrictnessList -> Bool
+equal_strictness_lists NotStrict NotStrict
+ = True
+equal_strictness_lists NotStrict (Strict s)
+ = s==0
+equal_strictness_lists NotStrict (StrictList s l)
+ = s==0 && is_not_strict l
+equal_strictness_lists (Strict s) NotStrict
+ = s==0
+equal_strictness_lists (Strict s1) (Strict s2)
+ = s1==s2
+equal_strictness_lists (Strict s1) (StrictList s2 l)
+ = s1==s2 && is_not_strict l
+equal_strictness_lists (StrictList s l) NotStrict
+ = s==0 && is_not_strict l
+equal_strictness_lists (StrictList s1 l) (Strict s2)
+ = s1==s2 && is_not_strict l
+equal_strictness_lists (StrictList s1 l1) (StrictList s2 l2)
+ = s1==s2 && equal_strictness_lists l1 l2
+
add_next_strict :: !Int !Int !StrictnessList -> (!Int,!Int,!StrictnessList)
add_next_strict strictness_index strictness strictness_list
| strictness_index<32