diff options
author | johnvg | 2001-03-27 15:54:51 +0000 |
---|---|---|
committer | johnvg | 2001-03-27 15:54:51 +0000 |
commit | 6b8957b10a9fd22ae5c890839645b01c99cf4244 (patch) | |
tree | 57756ac99b2c64e853360f1a9dc754b1f74e465d /frontend/hashtable.icl | |
parent | allow 'else fail' for all if nodes on root or in (diff) |
unfold all macros and local functions in macros
changed Declaration type
fixed crash when macro appears only in dcl module
added make with caching in 'main'
use BoxedIdent in hashtable
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@344 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/hashtable.icl')
-rw-r--r-- | frontend/hashtable.icl | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/frontend/hashtable.icl b/frontend/hashtable.icl index e9ebca4..1ca48b5 100644 --- a/frontend/hashtable.icl +++ b/frontend/hashtable.icl @@ -3,7 +3,7 @@ implementation module hashtable import predef, syntax, StdCompare, compare_constructor :: HashTableEntry - = HTE_Ident !Ident !IdentClass !Int !HashTableEntry !HashTableEntry + = HTE_Ident !BoxedIdent !IdentClass !Int !HashTableEntry !HashTableEntry | HTE_Empty :: HashTable = @@ -115,11 +115,15 @@ where insert name ident_class hte_mark0 hte_symbol_heap HTE_Empty # (hte_symbol_ptr, hte_symbol_heap) = newPtr EmptySymbolTableEntry hte_symbol_heap # ident = { id_name = name, id_info = hte_symbol_ptr} - = ({boxed_ident=ident}, hte_symbol_heap, HTE_Ident ident ident_class hte_mark0 HTE_Empty HTE_Empty) - insert name ident_class hte_mark0 hte_symbol_heap (HTE_Ident hte_ident=:{id_name,id_info} hte_class hte_mark hte_left hte_right) +// = ({boxed_ident=ident}, hte_symbol_heap, HTE_Ident ident ident_class hte_mark0 HTE_Empty HTE_Empty) + # boxed_ident={boxed_ident=ident} + = (boxed_ident, hte_symbol_heap, HTE_Ident boxed_ident ident_class hte_mark0 HTE_Empty HTE_Empty) +// insert name ident_class hte_mark0 hte_symbol_heap (HTE_Ident hte_ident=:{id_name,id_info} hte_class hte_mark hte_left hte_right) + insert name ident_class hte_mark0 hte_symbol_heap (HTE_Ident hte_ident=:{boxed_ident={id_name,id_info}} hte_class hte_mark hte_left hte_right) # cmp = (name,ident_class) =< (id_name,hte_class) | cmp == Equal - = ({boxed_ident=hte_ident}, hte_symbol_heap, HTE_Ident hte_ident hte_class (hte_mark bitand hte_mark0) hte_left hte_right) +// = ({boxed_ident=hte_ident}, hte_symbol_heap, HTE_Ident hte_ident hte_class (hte_mark bitand hte_mark0) hte_left hte_right) + = (hte_ident, hte_symbol_heap, HTE_Ident hte_ident hte_class (hte_mark bitand hte_mark0) hte_left hte_right) | cmp == Smaller #! (boxed_ident, hte_symbol_heap, hte_left) = insert name ident_class hte_mark0 hte_symbol_heap hte_left = (boxed_ident, hte_symbol_heap, HTE_Ident hte_ident hte_class hte_mark hte_left hte_right) |