Add allocator convertion functions
This commit is contained in:
@ -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
|
||||
|
Reference in New Issue
Block a user