3a_asm: first attempt for a proper datastructe for our new dataformat
[calu.git] / 3a_asm / Main.hs
1 -- as for deep thoughts ISA
2 -----------------------------------------------------------------------------
3
4 module Main where
5
6 import DT
7 import DTFormat
8
9 import Control.Applicative hiding ((<|>),many)
10
11 import System.IO
12 import System.Environment
13 import Text.Printf
14 import Text.Parsec
15 import Text.Parsec.String
16 import Text.Parsec.Combinator
17 import qualified Data.Map as M
18 import Data.List
19 import qualified Data.ByteString.Lazy as BL
20 -- import Data.Binary.Put
21
22 main :: IO ()
23 main = do
24         args <- getArgs
25         content <- getContents
26         let src = convertDTF (filter ((/=) "") $ lines content)
27         print args
28         print src
29
30 {-
31         case runParser DT.parseInstructions () "stdin" src of
32                 Left err -> print err
33                 Right val -> do
34                         sequence_ [printf "0x%08X\n" x | x <- val]
35 -}
36
37 --                           data    instr
38 -- convertDTF :: [String] -> Dict -> Dict -> ([DTF],Labels)
39
40 convertDTF :: [String] -> [DTF]
41 convertDTF [] = []
42 convertDTF (str:xs) = (DTF_Comment str):(convertDTF xs)