assembler-0.0.1: src/Main.hs
-----------------------------------------------------------------------------
--
-- Module : Main
-- Copyright : (c) Jeff Douglas
-- License : BSD3
--
-- Maintainer : Jeff Douglas
-- Stability : experimental
-- Portability : portable
--
-- |
--
-----------------------------------------------------------------------------
module Main where
import qualified Text.Assembler.PPC64 as PPC64
import Control.Applicative hiding ((<|>),many)
import System.IO
import System.Environment
import Text.Parsec
import Text.Parsec.String
import qualified Data.Map as M
import Data.List
import qualified Data.ByteString.Lazy as BL
import Data.Binary.Put
main :: IO ()
main = do
args <- getArgs
let arch = head args
src <- getContents
assembler src arch
assembler src isa = do
case isa of
"ppc64" -> case runParser PPC64.parseInstructions () "stdin" src of
Left err -> print err
Right val -> do
let s = runPut (putWord32be $head val)
BL.writeFile "out.bin" $ s