1 {-# LANGUAGE OverloadedStrings #-}
5 import qualified Data.Map as M
6 import qualified Data.ByteString.Lazy as B
14 dumpClass :: Class Resolved -> IO ()
17 B.putStrLn (thisClass cls)
18 putStrLn "Constants pool:"
19 forM_ (M.assocs $ constsPool cls) $ \(i, c) ->
20 putStrLn $ printf " #%d:\t%s" i (show c)
22 forM_ (classMethods cls) $ \m -> do
24 B.putStr (methodName m)
25 print (methodSignature m)
26 case attrByName m "Code" of
27 Nothing -> putStrLn "(no code)\n"
28 Just bytecode -> let code = decodeMethod bytecode
29 in forM_ (codeInstructions code) $ \i -> do