From 1cbbef19afcf997315431e3aa45f824fe8a8a0e7 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Sun, 8 Sep 2024 02:08:13 +0200 Subject: Stub the implementation for all phases --- lib/Language/Elna/SymbolTable.hs | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) (limited to 'lib/Language/Elna/SymbolTable.hs') diff --git a/lib/Language/Elna/SymbolTable.hs b/lib/Language/Elna/SymbolTable.hs index b56d0c7..c8406fc 100644 --- a/lib/Language/Elna/SymbolTable.hs +++ b/lib/Language/Elna/SymbolTable.hs @@ -1,15 +1,22 @@ module Language.Elna.SymbolTable - ( Info(..) + ( SymbolTable + , empty + {-, Info(..) , ParameterInfo(..) - , SymbolTable , builtInSymbolTable - , empty , enter , fromList , lookup - , member + , member -} ) where +data SymbolTable = SymbolTable -- (HashMap Identifier Info) + deriving (Eq, Show) + +empty :: SymbolTable +empty = SymbolTable -- HashMap.empty + +{- import Data.HashMap.Strict (HashMap) import qualified Data.HashMap.Strict as HashMap import Data.List (sort) @@ -20,9 +27,6 @@ import Language.Elna.Location (Identifier(..)) import Language.Elna.Types (Type(..), intType, booleanType) import Prelude hiding (lookup) -newtype SymbolTable = SymbolTable (HashMap Identifier Info) - deriving (Eq, Show) - instance Semigroup SymbolTable where (SymbolTable lhs) <> (SymbolTable rhs) = SymbolTable $ rhs <> lhs @@ -37,9 +41,6 @@ builtInSymbolTable = SymbolTable $ HashMap.fromList , ("int", TypeInfo intType) ] -empty :: SymbolTable -empty = SymbolTable HashMap.empty - enter :: Identifier -> Info -> SymbolTable -> Maybe SymbolTable enter identifier info table@(SymbolTable hashTable) | member identifier table = Nothing @@ -76,3 +77,4 @@ data Info | VariableInfo Bool Type | ProcedureInfo SymbolTable (Vector ParameterInfo) deriving (Eq, Show) +-} -- cgit v1.2.3