diff options
author | clean | 2000-09-27 10:27:54 +0000 |
---|---|---|
committer | clean | 2000-09-27 10:27:54 +0000 |
commit | d178557e591ca40ccbcd5dd967182a8eaa6eaef8 (patch) | |
tree | f581ca424180415c6ac5e60636026cf020ebbbc5 /frontend/hashtable.dcl | |
parent | bugfix: list inferred types printed types like f :: .[.a] instead of (diff) |
optimizations and caching of dcl modules (without trans.icl)
git-svn-id: https://svn.cs.ru.nl/repos/clean-compiler/trunk@232 1f8540f1-abd5-4d5b-9d24-4c5ce8603e2d
Diffstat (limited to 'frontend/hashtable.dcl')
-rw-r--r-- | frontend/hashtable.dcl | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/frontend/hashtable.dcl b/frontend/hashtable.dcl index 2d1621f..72a5544 100644 --- a/frontend/hashtable.dcl +++ b/frontend/hashtable.dcl @@ -7,10 +7,13 @@ import syntax :: HashTable = { hte_symbol_heap :: !.SymbolTable , hte_entries :: !.{! .HashTableEntry} + , hte_mark :: !Int // 1 for .icl modules, otherwise 0 } newHashTable :: *HashTable +set_hte_mark :: !Int !*HashTable -> *HashTable + :: IdentClass = IC_Expression | IC_Type | IC_TypeAttr @@ -21,6 +24,9 @@ newHashTable :: *HashTable | IC_Instance ![Type] | IC_Unknown +:: BoxedIdent = {boxed_ident::!Ident} -putIdentInHashTable :: !String !IdentClass !*HashTable -> (!Ident, !*HashTable) +//putIdentInHashTable :: !String !IdentClass !*HashTable -> (!Ident, !*HashTable) +putIdentInHashTable :: !String !IdentClass !*HashTable -> (!BoxedIdent, !*HashTable) +remove_icl_symbols_from_hash_table :: !*HashTable -> *HashTable |