+++ /dev/null
-{-# LANGUAGE OverloadedStrings #-}
-module BasicBlocks where
-
-import Data.Binary
-import System.Environment
-import qualified Data.Map as M
-import qualified Data.ByteString.Lazy as B
-
-import JVM.Common
-import JVM.ClassFile
-import JVM.Converter
-import JVM.Dump
-
-import Utilities
-
-main = do
- args <- getArgs
- case args of
- [clspath] -> do
- clsFile <- decodeFile clspath
- putStrLn $ showListIx $ M.assocs $ constsPool (clsFile :: Class Pointers)
- cls <- parseClassFile clspath
- dumpClass cls
- let mainmethod = lookupMethod "main" cls -- "main|([Ljava/lang/String;)V" cf
- testCFG mainmethod
- putStrLn "foo"
- _ -> error "Synopsis: dump-class File.class"
-
-testCFG _ = undefined
+++ /dev/null
-module Utilities where
-
-import qualified Data.ByteString.Lazy as B
-
-import qualified JVM.Assembler as J
-import JVM.Assembler hiding (Instruction)
-import JVM.Common
-import JVM.ClassFile
-
-
--- TODO: actually this function already exists in hs-java-0.3!
-lookupMethod :: B.ByteString -> Class Resolved -> Maybe (Method Resolved)
-lookupMethod name cls = look (classMethods cls)
- where
- look [] = Nothing
- look (f:fs)
- | methodName f == name = Just f
- | otherwise = look fs
--- /dev/null
+{-# LANGUAGE OverloadedStrings #-}
+module BasicBlocks where
+
+import Data.Binary
+import System.Environment
+import qualified Data.Map as M
+import qualified Data.ByteString.Lazy as B
+
+import JVM.Common
+import JVM.ClassFile
+import JVM.Converter
+import JVM.Dump
+
+import Utilities
+
+main = do
+ args <- getArgs
+ case args of
+ [clspath] -> do
+ clsFile <- decodeFile clspath
+ putStrLn $ showListIx $ M.assocs $ constsPool (clsFile :: Class Pointers)
+ cls <- parseClassFile clspath
+ dumpClass cls
+ let mainmethod = lookupMethod "main" cls -- "main|([Ljava/lang/String;)V" cf
+ testCFG mainmethod
+ putStrLn "foo"
+ _ -> error "Synopsis: dump-class File.class"
+
+testCFG _ = undefined
--- /dev/null
+module Utilities where
+
+import qualified Data.ByteString.Lazy as B
+
+import qualified JVM.Assembler as J
+import JVM.Assembler hiding (Instruction)
+import JVM.Common
+import JVM.ClassFile
+
+
+-- TODO: actually this function already exists in hs-java-0.3!
+lookupMethod :: B.ByteString -> Class Resolved -> Maybe (Method Resolved)
+lookupMethod name cls = look (classMethods cls)
+ where
+ look [] = Nothing
+ look (f:fs)
+ | methodName f == name = Just f
+ | otherwise = look fs
--- /dev/null
+public class Fib
+{
+ public static int fib(int n)
+ {
+ if(n<=1) return 1;
+ else return fib(n-1) + fib(n-2);
+ }
+
+ public static void main(String[] args)
+ {
+ fib(10);
+ }
+}