From b15606a530d27dd3eb3ed9c681716d3dd7ef5347 Mon Sep 17 00:00:00 2001 From: Joscha Date: Mon, 30 Mar 2020 14:54:43 +0000 Subject: [PATCH] Create types for assembly phase 1 --- package.yaml | 1 + src/Mima/Asm/Phase1.hs | 193 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 194 insertions(+) create mode 100644 src/Mima/Asm/Phase1.hs diff --git a/package.yaml b/package.yaml index 1f4bc04..f73e84a 100644 --- a/package.yaml +++ b/package.yaml @@ -20,6 +20,7 @@ dependencies: - bytestring - containers - filepath + - megaparsec - optparse-applicative - text - transformers diff --git a/src/Mima/Asm/Phase1.hs b/src/Mima/Asm/Phase1.hs new file mode 100644 index 0000000..8103f30 --- /dev/null +++ b/src/Mima/Asm/Phase1.hs @@ -0,0 +1,193 @@ +module Mima.Asm.Phase1 + ( Onion(..) + -- * Types + , Name(..) + , Address(..) + , Location(..) + , SmallOpcode(..) + , LargeOpcode(..) + , MimaWord(..) + , SmallValue(..) + , Instruction(..) + , RegisterDirective(..) + , JsonValue(..) + , Directive(..) + -- * Parsers + , Phase1 + , parsePhase1 + ) where + +import qualified Data.Aeson as A +import Data.Char +import qualified Data.Text as T +import Data.Void +import Text.Megaparsec + +import qualified Mima.Vm.Instruction as Vm +import qualified Mima.Vm.Word as Vm + +{- + := |
+
:= | |