aboutsummaryrefslogtreecommitdiff
path: root/lib/Language/Elna/Intermediate.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Language/Elna/Intermediate.hs')
-rw-r--r--lib/Language/Elna/Intermediate.hs37
1 files changed, 0 insertions, 37 deletions
diff --git a/lib/Language/Elna/Intermediate.hs b/lib/Language/Elna/Intermediate.hs
index d334661..ff2b115 100644
--- a/lib/Language/Elna/Intermediate.hs
+++ b/lib/Language/Elna/Intermediate.hs
@@ -23,7 +23,6 @@ intermediate _globalTable = const $ Vector.fromList [StartQuadruple, StopQuadrup
. runIntermediate
. program globalTable -}
{-
-import Control.Monad.Trans.State (State, runState, gets, modify')
import Data.Bifunctor (Bifunctor(..))
import Data.Int (Int32)
import Data.HashMap.Strict (HashMap)
@@ -59,42 +58,6 @@ instance Show Variable
show (Variable variable) = '$' : Text.unpack variable
show (TempVariable variable) = '$' : show variable
-data Generator = Generator
- { labelCounter :: Int32
- , temporaryCounter :: Int32
- } deriving (Eq, Show)
-
-instance Semigroup Generator
- where
- lhs <> rhs = Generator
- { labelCounter = getField @"labelCounter" lhs + getField @"labelCounter" rhs
- , temporaryCounter = getField @"temporaryCounter" lhs + getField @"temporaryCounter" rhs
- }
-
-instance Monoid Generator
- where
- mempty = Generator
- { labelCounter = 0
- , temporaryCounter = 0
- }
-
-newtype Intermediate a = Intermediate
- { runIntermediate :: State Generator a
- }
-
-instance Functor Intermediate
- where
- fmap f (Intermediate x) = Intermediate $ f <$> x
-
-instance Applicative Intermediate
- where
- pure = Intermediate . pure
- (Intermediate f) <*> (Intermediate x) = Intermediate $ f <*> x
-
-instance Monad Intermediate
- where
- (Intermediate x) >>= f = Intermediate $ x >>= (runIntermediate . f)
-
data Quadruple
= StartQuadruple
| GoToQuadruple Label