X-Git-Url: http://wien.tomnetworks.com/gitweb/?p=hs-java.git;a=blobdiff_plain;f=rebuild-class.hs;h=301e158ce3fddbe0c0f044ce68e0dad044fe8952;hp=1265cf1207b9dd07db78da902197b4e049ff8d77;hb=HEAD;hpb=551564c1e46fc926629bd12a3bd73ae7bd976687 diff --git a/rebuild-class.hs b/rebuild-class.hs index 1265cf1..301e158 100644 --- a/rebuild-class.hs +++ b/rebuild-class.hs @@ -1,16 +1,13 @@ {-# LANGUAGE OverloadedStrings #-} -import Control.Monad -import Data.Array import Data.Binary import System.Environment import qualified Data.ByteString.Lazy as B -import Text.Printf +import qualified Data.Map as M -import JVM.Types +import JVM.Common import JVM.ClassFile import JVM.Converter -import JVM.Assembler import JVM.Dump main = do @@ -18,11 +15,11 @@ main = do case args of [clspath,outpath] -> do cls <- parseClassFile clspath - clsfile <- decodeFile clspath :: IO ClassFile + clsfile <- decodeFile clspath :: IO (Class File) dumpClass cls - putStrLn $ "Source pool:\n" ++ showListIx (constsPool clsfile) - let result = classFile cls - putStrLn $ "Result pool:\n" ++ showListIx (constsPool result) + putStrLn $ "Source pool:\n" ++ showListIx (M.assocs $ constsPool clsfile) + let result = classDirect2File cls + putStrLn $ "Result pool:\n" ++ showListIx (M.assocs $ constsPool result) B.writeFile outpath (encodeClass cls) _ -> error "Synopsis: rebuild-class File.class Output.class"