diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/Main.hs | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/Main.hs b/src/Main.hs index a993e98..456c5ad 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -5,11 +5,12 @@ module Main import Language.Elna.CommandLine (CommandLine(..), commandLine, execParser) import Language.Elna.PrinterWriter (riscv32Elf) import Language.Elna.Object.Elf (elfObject) +import Language.Elna.Allocator (allocate) import Language.Elna.Parser (programP) import Language.Elna.NameAnalysis (nameAnalysis) import Language.Elna.TypeAnalysis (typeAnalysis) import Language.Elna.Intermediate (intermediate) -import Language.Elna.CodeGenerator (generateCode) +import Language.Elna.CodeGenerator (generateRiscV, riscVConfiguration) import Data.Maybe (fromMaybe) import System.FilePath (replaceExtension, takeFileName) import Text.Megaparsec (runParser, errorBundlePretty) @@ -31,7 +32,8 @@ main = execParser commandLine >>= withCommandLine $ errorBundlePretty errorBundle withSymbolTable output program symbolTable = let _ = typeAnalysis symbolTable program - intermediate' = intermediate symbolTable program - instructions = generateCode symbolTable intermediate' + instructions = generateRiscV + $ allocate riscVConfiguration + $ intermediate symbolTable program in elfObject output $ riscv32Elf instructions |
