From fdf56ce9d0de459dc5bd65537847ded7b02ad5c2 Mon Sep 17 00:00:00 2001 From: Eugen Wissner Date: Wed, 2 Oct 2024 22:56:15 +0200 Subject: Negate integral expressions --- lib/Language/Elna/Allocator.hs | 39 --------------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 lib/Language/Elna/Allocator.hs (limited to 'lib/Language/Elna/Allocator.hs') diff --git a/lib/Language/Elna/Allocator.hs b/lib/Language/Elna/Allocator.hs deleted file mode 100644 index 3b32de4..0000000 --- a/lib/Language/Elna/Allocator.hs +++ /dev/null @@ -1,39 +0,0 @@ -module Language.Elna.Allocator - ( MachineConfiguration(..) - , Store(..) - , allocate - ) where - -import Data.HashMap.Strict (HashMap) -import Data.Vector (Vector) -import Language.Elna.Intermediate (Operand(..), Quadruple(..), Variable(..)) -import Language.Elna.Location (Identifier(..)) - -newtype Store r = Store r - -newtype MachineConfiguration r = MachineConfiguration - { temporaryRegister :: r - } - -allocate - :: forall r - . MachineConfiguration r - -> HashMap Identifier (Vector (Quadruple Variable)) - -> HashMap Identifier (Vector (Quadruple (Store r))) -allocate MachineConfiguration{..} = fmap function - where - function :: Vector (Quadruple Variable) -> Vector (Quadruple (Store r)) - function = fmap quadruple - quadruple :: Quadruple Variable -> Quadruple (Store r) - quadruple StartQuadruple = StartQuadruple - quadruple StopQuadruple = StopQuadruple - quadruple (ParameterQuadruple operand1) = - ParameterQuadruple (operand operand1) - quadruple (CallQuadruple name count) = CallQuadruple name count - quadruple (AddQuadruple operand1 operand2 _) = - AddQuadruple (operand operand1) (operand operand2) (Store temporaryRegister) - quadruple (SubtractionQuadruple operand1 operand2 _) = - SubtractionQuadruple (operand operand1) (operand operand2) (Store temporaryRegister) - operand :: Operand Variable -> Operand (Store r) - operand (IntOperand x) = IntOperand x - operand (VariableOperand _) = VariableOperand (Store temporaryRegister) -- cgit v1.2.3