diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Main.hs | 14 |
1 files changed, 8 insertions, 6 deletions
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 |
