From 0a8d3fce2f2797b95b22ea3577d2514621c850fc Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Fri, 20 Sep 2024 13:32:24 +0200 Subject: Collect function declaration symbols --- src/Main.hs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) (limited to 'src/Main.hs') diff --git a/src/Main.hs b/src/Main.hs index 646d967..a993e98 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -25,11 +25,13 @@ main = execParser commandLine >>= withCommandLine >>= withParsedInput defaultOutput . runParser programP input withParsedInput output (Right program) = - let symbolTable = nameAnalysis program - _ = typeAnalysis symbolTable program - intermediate' = intermediate symbolTable program - in elfObject output - $ riscv32Elf - $ generateCode symbolTable intermediate' + either print (withSymbolTable output program) + $ nameAnalysis program withParsedInput _ (Left errorBundle) = putStrLn $ errorBundlePretty errorBundle + withSymbolTable output program symbolTable = + let _ = typeAnalysis symbolTable program + intermediate' = intermediate symbolTable program + instructions = generateCode symbolTable intermediate' + in elfObject output + $ riscv32Elf instructions -- cgit v1.2.3