Utilities, BasicBlock into src folder, BasicBlock sketching
authorHarald Steinlechner <haraldsteinlechner@gmail.com>
Tue, 27 Mar 2012 20:13:42 +0000 (22:13 +0200)
committerHarald Steinlechner <haraldsteinlechner@gmail.com>
Tue, 27 Mar 2012 20:13:42 +0000 (22:13 +0200)
BasicBlocks.hs [deleted file]
Utilities.hs [deleted file]
src/BasicBlocks.hs [new file with mode: 0644]
src/Utilities.hs [new file with mode: 0644]
tests/Fib.java [new file with mode: 0644]

diff --git a/BasicBlocks.hs b/BasicBlocks.hs
deleted file mode 100644 (file)
index 4f84998..0000000
+++ /dev/null
@@ -1,29 +0,0 @@
-{-# 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
diff --git a/Utilities.hs b/Utilities.hs
deleted file mode 100644 (file)
index 540d054..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-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
diff --git a/src/BasicBlocks.hs b/src/BasicBlocks.hs
new file mode 100644 (file)
index 0000000..4f84998
--- /dev/null
@@ -0,0 +1,29 @@
+{-# 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
diff --git a/src/Utilities.hs b/src/Utilities.hs
new file mode 100644 (file)
index 0000000..540d054
--- /dev/null
@@ -0,0 +1,18 @@
+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
diff --git a/tests/Fib.java b/tests/Fib.java
new file mode 100644 (file)
index 0000000..b916716
--- /dev/null
@@ -0,0 +1,13 @@
+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);
+       }
+}