diff --git a/Asmblr.cabal b/Asmblr.cabal index 658327b..e7b3203 100644 --- a/Asmblr.cabal +++ b/Asmblr.cabal @@ -2,7 +2,7 @@ -- documentation, see http://haskell.org/cabal/users-guide/ -- The name of the package. -name: Asmblr +name: hackasm -- The package version. See the Haskell package versioning policy (PVP) -- for standards guiding when and how versions should be incremented. @@ -19,7 +19,7 @@ synopsis: Assembler for Hack platform -- description: -- URL for the project homepage or repository. -homepage: http://git.rekahsoft.ca/hack +homepage: http://git.rekahsoft.ca/hackasm -- The license under which the package is released. license: GPL-3 @@ -43,27 +43,36 @@ build-type: Simple -- Extra files to be distributed with the package, such as examples or a -- README. --- extra-source-files: +extra-source-files: README.md -- Constraint on the version of Cabal needed to build this package. cabal-version: >=1.10 +library + hs-source-dirs: src/lib + exposed-modules: RekahSoft.HackAsm + RekahSoft.HackAsm.Parser + + build-depends: base >=4.8 && <4.9, parsec >=3.1 && <3.2, filepath >=1.4 && <1.5, containers >=0.5 && <0.6 + + default-language: Haskell2010 + executable Asmblr -- .hs or .lhs file containing the Main module. main-is: Main.hs -- Modules included in this executable, other than Main. - -- other-modules: + other-modules: RekahSoft.HackAsm.CommandLine -- LANGUAGE extensions used by modules in this package. -- other-extensions: -- Other library packages from which modules are imported. - build-depends: base >=4.8 && <4.9, parsec >=3.1 && <3.2, filepath >=1.4 && <1.5, containers >=0.5 && <0.6 + build-depends: base >=4.8 && <4.9, parsec >=3.1 && <3.2, filepath >=1.4 && <1.5, containers >=0.5 && <0.6, hackasm -- Directories containing source files. - hs-source-dirs: src + hs-source-dirs: src/Asmblr -- Base language which the package is written in. default-language: Haskell2010 diff --git a/src/Main.hs b/src/Asmblr/Main.hs similarity index 95% rename from src/Main.hs rename to src/Asmblr/Main.hs index 2f7b8bb..b42d986 100644 --- a/src/Main.hs +++ b/src/Asmblr/Main.hs @@ -19,7 +19,7 @@ module Main where -import Asmblr +import RekahSoft.HackAsm.CommandLine main :: IO () main = defaultMain diff --git a/src/Asmblr.hs b/src/Asmblr/RekahSoft/HackAsm/CommandLine.hs similarity index 96% rename from src/Asmblr.hs rename to src/Asmblr/RekahSoft/HackAsm/CommandLine.hs index b9f80d3..5972ce4 100644 --- a/src/Asmblr.hs +++ b/src/Asmblr/RekahSoft/HackAsm/CommandLine.hs @@ -20,7 +20,7 @@ ---------------------------------------------------------------------------- {-| -Module : Asmblr +Module : RekahSoft.HackAsm.CommandLine Description : Program that takes a hack assembly and converts it to its machine language representation Copyright : (c) Collin J. Doering, 2015 @@ -31,14 +31,14 @@ Portability : POSIX TODO: describe the assemblers operation in more detail -} -module Asmblr (defaultMain) where +module RekahSoft.HackAsm.CommandLine (defaultMain) where import System.IO import System.FilePath (dropExtension) import System.Console.GetOpt import System.Environment (getArgs) -import Asmblr.Parser +import RekahSoft.HackAsm.Parser ---------------------------------------------------------------------------- diff --git a/src/lib/RekahSoft/HackAsm.hs b/src/lib/RekahSoft/HackAsm.hs new file mode 100644 index 0000000..3583274 --- /dev/null +++ b/src/lib/RekahSoft/HackAsm.hs @@ -0,0 +1,33 @@ +-- (C) Copyright Collin J. Doering 2015 +-- +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU General Public License +-- along with this program. If not, see . + +-- File: HackAsm.hs +-- Author: Collin J. Doering +-- Date: Jun 17, 2015 + +{-| +Module : RekahSoft.Asmblr.Parser +Description : Parse hack assembly into its machine language representation +Copyright : (c) Collin J. Doering, 2015 +License : GPL-3 +Maintainer : collin.doering@rekahsoft.ca +Stability : stable +Portability : POSIX + +TODO: describe the assemblers operation in more detail +-} +module RekahSoft.HackAsm (parseHackAsm, parseHackAsmFile) where + +import RekahSoft.HackAsm.Parser diff --git a/src/Asmblr/Parser.hs b/src/lib/RekahSoft/HackAsm/Parser.hs similarity index 98% rename from src/Asmblr/Parser.hs rename to src/lib/RekahSoft/HackAsm/Parser.hs index 3dfd22b..70123f9 100644 --- a/src/Asmblr/Parser.hs +++ b/src/lib/RekahSoft/HackAsm/Parser.hs @@ -18,7 +18,7 @@ -- Date: Jun 16, 2015 {-| -Module : Asmblr.Parser +Module : RekahSoft.Asmblr.Parser Description : Parse hack assembly into its machine language representation Copyright : (c) Collin J. Doering, 2015 License : GPL-3 @@ -28,7 +28,7 @@ Portability : POSIX TODO: describe the assemblers operation in more detail -} -module Asmblr.Parser (parseHackAsm, parseHackAsmFile) where +module RekahSoft.HackAsm.Parser (parseHackAsm, parseHackAsmFile) where import Text.ParserCombinators.Parsec import Text.Parsec.Prim (modifyState)