diff options
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' |
