cabal: bump data-default dependency to 0.5.0.
[hs-java.git] / rebuild-class.hs
1 {-# LANGUAGE OverloadedStrings #-}
2
3 import Data.Binary
4 import System.Environment
5 import qualified Data.ByteString.Lazy as B
6 import qualified Data.Map as M
7
8 import JVM.Common
9 import JVM.ClassFile
10 import JVM.Converter
11 import JVM.Dump
12
13 main = do
14   args <- getArgs
15   case args of
16     [clspath,outpath] -> do
17       cls <- parseClassFile clspath
18       clsfile <- decodeFile clspath :: IO (Class File)
19       dumpClass cls
20       putStrLn $ "Source pool:\n" ++ showListIx (M.assocs $ constsPool clsfile)
21       let result = classDirect2File cls
22       putStrLn $ "Result pool:\n" ++ showListIx (M.assocs $ constsPool result)
23       B.writeFile outpath (encodeClass cls)
24
25     _ -> error "Synopsis: rebuild-class File.class Output.class"