summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/Main.hs8
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