aboutsummaryrefslogtreecommitdiff
path: root/frontend/hashtable.icl
diff options
context:
space:
mode:
authorjohnvg2011-04-19 11:37:59 +0000
committerjohnvg2011-04-19 11:37:59 +0000
commitd0ae22e4b794606ef99dc124b8b40a93cc24f9ba (patch)
treee880d814aef67ca23e44808a4b30f054606dbc13 /frontend/hashtable.icl
parentadd instance declarations with a qualified class name (diff)
use unique array select and update instead of replace
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@1930 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/hashtable.icl')
-rw-r--r--frontend/hashtable.icl18
1 files changed, 9 insertions, 9 deletions
diff --git a/frontend/hashtable.icl b/frontend/hashtable.icl
index 0df5802..934bbfc 100644
--- a/frontend/hashtable.icl
+++ b/frontend/hashtable.icl
@@ -90,7 +90,7 @@ where
putIdentInHashTable :: !String !IdentClass !*HashTable -> (!BoxedIdent, !*HashTable)
putIdentInHashTable name ident_class {hte_symbol_heap,hte_entries,hte_mark}
# hash_val = hashValue name
- (entries,hte_entries) = replace hte_entries hash_val HTE_Empty
+ (entries,hte_entries) = hte_entries![hash_val]
(ident, hte_symbol_heap, entries) = insert name ident_class hte_mark hte_symbol_heap entries
hte_entries = {hte_entries & [hash_val]=entries}
= (ident, { hte_symbol_heap = hte_symbol_heap, hte_entries = hte_entries,hte_mark=hte_mark })
@@ -114,9 +114,9 @@ where
putQualifiedIdentInHashTable :: !String !BoxedIdent !IdentClass !*HashTable -> (!BoxedIdent, !*HashTable)
putQualifiedIdentInHashTable module_name ident ident_class {hte_symbol_heap,hte_entries,hte_mark}
# hash_val = hashValue module_name
- (entries,hte_entries) = replace hte_entries hash_val HTE_Empty
+ (entries,hte_entries) = hte_entries![hash_val]
(ident, hte_symbol_heap, entries) = insert module_name ident ident_class (IC_Module NoQualifiedIdents) hte_mark hte_symbol_heap entries
- hte_entries = update hte_entries hash_val entries
+ hte_entries = {hte_entries & [hash_val]=entries}
= (ident, { hte_symbol_heap = hte_symbol_heap, hte_entries = hte_entries,hte_mark=hte_mark })
where
insert :: !String !BoxedIdent !IdentClass !IdentClass !Int !*SymbolTable *HashTableEntry -> (!BoxedIdent, !*SymbolTable, !*HashTableEntry)
@@ -141,9 +141,9 @@ where
putPredefinedIdentInHashTable :: !Ident !IdentClass !*HashTable -> *HashTable
putPredefinedIdentInHashTable predefined_ident=:{id_name} ident_class {hte_symbol_heap,hte_entries,hte_mark}
# hash_val = hashValue id_name
- (entries,hte_entries) = replace hte_entries hash_val HTE_Empty
+ (entries,hte_entries) = hte_entries![hash_val]
(hte_symbol_heap, entries) = insert id_name ident_class hte_mark hte_symbol_heap entries
- hte_entries = update hte_entries hash_val entries
+ hte_entries = {hte_entries & [hash_val]=entries}
= { hte_symbol_heap = hte_symbol_heap, hte_entries = hte_entries,hte_mark=hte_mark }
where
insert :: !String !IdentClass !Int !*SymbolTable *HashTableEntry -> (!*SymbolTable, !*HashTableEntry)
@@ -164,9 +164,9 @@ where
get_qualified_idents_from_hash_table :: !Ident !*HashTable -> (!QualifiedIdents,!*HashTable)
get_qualified_idents_from_hash_table module_ident=:{id_name} hash_table=:{hte_entries}
# hash_val = hashValue id_name
- (entries,hte_entries) = replace hte_entries hash_val HTE_Empty
+ (entries,hte_entries) = hte_entries![hash_val]
(qualified_idents, entries) = find_qualified_idents id_name (IC_Module NoQualifiedIdents) entries
- hte_entries = update hte_entries hash_val entries
+ hte_entries = {hte_entries & [hash_val] = entries}
= (qualified_idents, {hash_table & hte_entries = hte_entries})
where
find_qualified_idents :: !String !IdentClass *HashTableEntry -> (!QualifiedIdents, !*HashTableEntry)
@@ -188,9 +188,9 @@ remove_icl_symbols_from_hash_table hash_table=:{hte_entries}
where
remove_icl_symbols_from_array i hte_entries
| i<size hte_entries
- # (entries,hte_entries) = replace hte_entries i HTE_Empty
+ # (entries,hte_entries) = hte_entries![i]
# (_,entries) = remove_icl_entries_from_tree entries
- # hte_entries = update hte_entries i entries
+ # hte_entries = {hte_entries & [i] = entries}
= remove_icl_symbols_from_array (i+1) hte_entries
= hte_entries