- clsfile <- decodeFile clspath :: IO ClassFile
- putStr "Class: "
- B.putStrLn (this cls)
- putStrLn "Constants pool:"
- forM_ (assocs $ constantPool cls) $ \(i, c) ->
- putStrLn $ printf " #%d:\t%s" i (show c)
- putStrLn "Methods:"
- forM_ (methods cls) $ \m -> do
- putStr ">> Method "
- B.putStr (methodName m)
- print (methodSignature m)
- case attrByName m "Code" of
- Nothing -> putStrLn "(no code)\n"
- Just bytecode -> let code = decodeMethod bytecode
- in forM_ (codeInstructions code) $ \i -> do
- putStr " "
- print i
- putStrLn $ "Source pool:\n" ++ showListIx (constsPool clsfile)
- let result = classFile cls
- putStrLn $ "Result pool:\n" ++ showListIx (constsPool result)
+ clsfile <- decodeFile clspath :: IO (Class File)
+ dumpClass cls
+ putStrLn $ "Source pool:\n" ++ showListIx (M.assocs $ constsPool clsfile)
+ let result = classDirect2File cls
+ putStrLn $ "Result pool:\n" ++ showListIx (M.assocs $ constsPool result)