From 69b71af830218d6e1e20fae3cc42fdbaca1816ee Mon Sep 17 00:00:00 2001 From: Ilya Portnov Date: Fri, 30 Sep 2011 18:54:33 +0600 Subject: [PATCH] Rearrange modules. --- JVM/Builder.hs | 9 +++++++++ JVM/{Generator => Builder}/Instructions.hs | 4 ++-- JVM/{Generator.hs => Builder/Monad.hs} | 4 ++-- JVM/{Types.hs => Common.hs} | 2 +- JVM/Converter.hs | 2 +- JVM/Dump.hs | 2 +- Java/IO.hs | 2 +- Java/Lang.hs | 2 +- Makefile | 8 +++++++- TestGen.hs | 4 +--- dump-class.hs | 2 +- rebuild-class.hs | 6 +----- 12 files changed, 28 insertions(+), 19 deletions(-) create mode 100644 JVM/Builder.hs rename JVM/{Generator => Builder}/Instructions.hs (97%) rename JVM/{Generator.hs => Builder/Monad.hs} (98%) rename JVM/{Types.hs => Common.hs} (97%) diff --git a/JVM/Builder.hs b/JVM/Builder.hs new file mode 100644 index 0000000..f905ab6 --- /dev/null +++ b/JVM/Builder.hs @@ -0,0 +1,9 @@ + +module JVM.Builder + (module JVM.Builder.Monad, + module JVM.Builder.Instructions) + where + +import JVM.Builder.Monad +import JVM.Builder.Instructions + diff --git a/JVM/Generator/Instructions.hs b/JVM/Builder/Instructions.hs similarity index 97% rename from JVM/Generator/Instructions.hs rename to JVM/Builder/Instructions.hs index 4a7a450..3eec20f 100644 --- a/JVM/Generator/Instructions.hs +++ b/JVM/Builder/Instructions.hs @@ -1,9 +1,9 @@ -module JVM.Generator.Instructions where +module JVM.Builder.Instructions where import JVM.ClassFile import JVM.Assembler -import JVM.Generator +import JVM.Builder.Monad nop = i0 NOP aconst_null = i0 ACONST_NULL diff --git a/JVM/Generator.hs b/JVM/Builder/Monad.hs similarity index 98% rename from JVM/Generator.hs rename to JVM/Builder/Monad.hs index 34b27ed..85916e2 100644 --- a/JVM/Generator.hs +++ b/JVM/Builder/Monad.hs @@ -1,5 +1,5 @@ {-# LANGUAGE FlexibleContexts, TypeFamilies, OverloadedStrings #-} -module JVM.Generator where +module JVM.Builder.Monad where import Control.Monad.State as St import Data.Word @@ -9,7 +9,7 @@ import qualified Data.Map as M import qualified Data.Set as S import qualified Data.ByteString.Lazy as B -import JVM.Types +import JVM.Common () -- import instances only import JVM.ClassFile import JVM.Assembler diff --git a/JVM/Types.hs b/JVM/Common.hs similarity index 97% rename from JVM/Types.hs rename to JVM/Common.hs index 6af75e7..2a7397e 100644 --- a/JVM/Types.hs +++ b/JVM/Common.hs @@ -1,6 +1,6 @@ {-# LANGUAGE TypeFamilies, StandaloneDeriving, FlexibleInstances, FlexibleContexts, UndecidableInstances #-} -- | This module declares `high-level' data types for Java classes, methods etc. -module JVM.Types where +module JVM.Common where import Codec.Binary.UTF8.String hiding (encode, decode) import Control.Applicative diff --git a/JVM/Converter.hs b/JVM/Converter.hs index 82a1782..b780d0d 100644 --- a/JVM/Converter.hs +++ b/JVM/Converter.hs @@ -21,7 +21,7 @@ import qualified Data.Set as S import qualified Data.Map as M import JVM.ClassFile -import JVM.Types +import JVM.Common import JVM.Exceptions -- | Parse .class file data diff --git a/JVM/Dump.hs b/JVM/Dump.hs index 02da46a..f81aa4a 100644 --- a/JVM/Dump.hs +++ b/JVM/Dump.hs @@ -6,7 +6,7 @@ import qualified Data.Map as M import qualified Data.ByteString.Lazy as B import Text.Printf -import JVM.Types +import JVM.Common import JVM.ClassFile import JVM.Converter import JVM.Assembler diff --git a/Java/IO.hs b/Java/IO.hs index e3a2997..7f13efb 100644 --- a/Java/IO.hs +++ b/Java/IO.hs @@ -3,8 +3,8 @@ module Java.IO where import Data.String +import JVM.Common () -- import instances only import JVM.ClassFile -import JVM.Types import qualified Java.Lang diff --git a/Java/Lang.hs b/Java/Lang.hs index d11f7bd..74c40fc 100644 --- a/Java/Lang.hs +++ b/Java/Lang.hs @@ -3,8 +3,8 @@ module Java.Lang where import Data.String +import JVM.Common () -- import instances only import JVM.ClassFile -import JVM.Types objectClass = ObjectType object stringClass = ObjectType string diff --git a/Makefile b/Makefile index 8477513..a2aa34c 100644 --- a/Makefile +++ b/Makefile @@ -1,10 +1,16 @@ GHC=ghc --make -fwarn-unused-imports -all: dump-class +all: dump-class rebuild-class TestGen dump-class: dump-class.hs */*.hs $(GHC) $< +rebuild-class: rebuild-class.hs */*.hs + $(GHC) $< + +TestGen: TestGen.hs */*.hs + $(GHC) $< + clean: find . -name *.hi -delete find . -name *.o -delete diff --git a/TestGen.hs b/TestGen.hs index a42fa05..5bb8daa 100644 --- a/TestGen.hs +++ b/TestGen.hs @@ -2,12 +2,10 @@ import qualified Data.ByteString.Lazy as B -import JVM.Types import JVM.ClassFile import JVM.Converter import JVM.Assembler -import JVM.Generator -import JVM.Generator.Instructions +import JVM.Builder import qualified Java.Lang import qualified Java.IO diff --git a/dump-class.hs b/dump-class.hs index 86e714f..57053d6 100644 --- a/dump-class.hs +++ b/dump-class.hs @@ -9,7 +9,7 @@ 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.Dump diff --git a/rebuild-class.hs b/rebuild-class.hs index 337c5b2..45a9843 100644 --- a/rebuild-class.hs +++ b/rebuild-class.hs @@ -1,17 +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 -- 2.25.1