summaryrefslogtreecommitdiff
path: root/lib/Language/Elna/Backend/Intermediate.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Language/Elna/Backend/Intermediate.hs')
-rw-r--r--lib/Language/Elna/Backend/Intermediate.hs9
1 files changed, 8 insertions, 1 deletions
diff --git a/lib/Language/Elna/Backend/Intermediate.hs b/lib/Language/Elna/Backend/Intermediate.hs
index c4dcf18..624bba8 100644
--- a/lib/Language/Elna/Backend/Intermediate.hs
+++ b/lib/Language/Elna/Backend/Intermediate.hs
@@ -1,11 +1,13 @@
module Language.Elna.Backend.Intermediate
- ( Operand(..)
+ ( ProcedureQuadruples(..)
+ , Operand(..)
, Quadruple(..)
, Label(..)
, Variable(..)
) where
import Data.Int (Int32)
+import Data.Vector (Vector)
import Data.Word (Word32)
import Data.Text (Text)
import qualified Data.Text as Text
@@ -30,6 +32,11 @@ data Operand v
| VariableOperand v
deriving (Eq, Show)
+data ProcedureQuadruples v = ProcedureQuadruples
+ { quadruples :: Vector (Quadruple v)
+ , stackSize :: Word32
+ } deriving (Eq, Show)
+
data Quadruple v
= StartQuadruple
| StopQuadruple