diff options
| author | Eugen Wissner <belka@caraus.de> | 2024-10-04 18:26:10 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2024-10-04 18:26:10 +0200 |
| commit | 35742aa52587400950cf25170c2247f98f498d4d (patch) | |
| tree | 78d0fd208e2e08d30c18ada33c52bc76a91267d6 /lib/Language/Elna/Frontend/SymbolTable.hs | |
| parent | fdf56ce9d0de459dc5bd65537847ded7b02ad5c2 (diff) | |
| download | elna-35742aa52587400950cf25170c2247f98f498d4d.tar.gz | |
Add printc and exit builtin functions
Diffstat (limited to 'lib/Language/Elna/Frontend/SymbolTable.hs')
| -rw-r--r-- | lib/Language/Elna/Frontend/SymbolTable.hs | 15 |
1 files changed, 14 insertions, 1 deletions
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' |
