diff options
author | johnvg | 2011-04-19 11:37:59 +0000 |
---|---|---|
committer | johnvg | 2011-04-19 11:37:59 +0000 |
commit | d0ae22e4b794606ef99dc124b8b40a93cc24f9ba (patch) | |
tree | e880d814aef67ca23e44808a4b30f054606dbc13 /frontend/hashtable.icl | |
parent | add 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.icl | 18 |
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 |