From 35742aa52587400950cf25170c2247f98f498d4d Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Fri, 4 Oct 2024 18:26:10 +0200 Subject: Add printc and exit builtin functions --- lib/Language/Elna/Frontend/SymbolTable.hs | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) (limited to 'lib/Language/Elna/Frontend/SymbolTable.hs') diff --git a/lib/Language/Elna/Frontend/SymbolTable.hs b/lib/Language/Elna/Frontend/SymbolTable.hs index 9ace33f..e90a942 100644 --- a/lib/Language/Elna/Frontend/SymbolTable.hs +++ b/lib/Language/Elna/Frontend/SymbolTable.hs @@ -40,9 +40,22 @@ scope parent (SymbolTable _ mappings) = SymbolTable (Just parent) mappings builtInSymbolTable :: SymbolTable builtInSymbolTable = SymbolTable Nothing $ HashMap.fromList - [ ("printi", ProcedureInfo empty Vector.empty) + [ ("printi", ProcedureInfo empty (Vector.singleton printiX)) + , ("printc", ProcedureInfo empty (Vector.singleton printcI)) + , ("exit", ProcedureInfo empty Vector.empty) , ("int", TypeInfo intType) ] + where + printiX = ParameterInfo + { name = "x" + , type' = intType + , isReferenceParameter = False + } + printcI = ParameterInfo + { name = "i" + , type' = intType + , isReferenceParameter = False + } toMap :: SymbolTable -> HashMap Identifier Info toMap (SymbolTable _ map') = map' -- cgit v1.2.3