aboutsummaryrefslogtreecommitdiff
path: root/frontend/hashtable.dcl
diff options
context:
space:
mode:
authorclean2000-09-27 10:27:54 +0000
committerclean2000-09-27 10:27:54 +0000
commitd178557e591ca40ccbcd5dd967182a8eaa6eaef8 (patch)
treef581ca424180415c6ac5e60636026cf020ebbbc5 /frontend/hashtable.dcl
parentbugfix: 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.dcl8
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