summaryrefslogtreecommitdiff
path: root/lib/Language/Elna/SymbolTable.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2024-07-31 00:49:16 +0300
committerEugen Wissner <belka@caraus.de>2024-07-31 00:49:16 +0300
commitd4471ca2fa765c8c4c4f1e8bec59fc0c441eb824 (patch)
tree1490547cc1662d66fbf6d27f5da3b6fdb352c905 /lib/Language/Elna/SymbolTable.hs
parent92990e52f017c3fa0b9ff99f517171051d8c7c18 (diff)
downloadelna-d4471ca2fa765c8c4c4f1e8bec59fc0c441eb824.tar.gz
Collect types into the global symbol table
Diffstat (limited to 'lib/Language/Elna/SymbolTable.hs')
-rw-r--r--lib/Language/Elna/SymbolTable.hs4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/Language/Elna/SymbolTable.hs b/lib/Language/Elna/SymbolTable.hs
index ba2e41f..f1c6534 100644
--- a/lib/Language/Elna/SymbolTable.hs
+++ b/lib/Language/Elna/SymbolTable.hs
@@ -2,6 +2,7 @@ module Language.Elna.SymbolTable
( Info(..)
, ParameterInfo(..)
, SymbolTable
+ , empty
, enter
, lookup
, symbolTable
@@ -31,6 +32,9 @@ symbolTable = SymbolTable $ HashMap.fromList
, ("int", TypeInfo intType)
]
+empty :: SymbolTable
+empty = SymbolTable HashMap.empty
+
enter :: Identifier -> Info -> SymbolTable -> SymbolTable
enter identifier info (SymbolTable table) = SymbolTable
$ HashMap.insert identifier info table