summaryrefslogtreecommitdiff
path: root/lib/Language/Elna/Backend/Intermediate.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2024-11-06 22:23:49 +0100
committerEugen Wissner <belka@caraus.de>2024-11-06 22:23:49 +0100
commit060496fc6ee331e2710ff8ade23317a0a79cbd6c (patch)
tree9af7b8f8767449bea7ae9a76e244141118ae5e75 /lib/Language/Elna/Backend/Intermediate.hs
parente2d4b76c0bbad6c0740f5322e862a02971802e87 (diff)
downloadelna-060496fc6ee331e2710ff8ade23317a0a79cbd6c.tar.gz
Parse local variables
Diffstat (limited to 'lib/Language/Elna/Backend/Intermediate.hs')
-rw-r--r--lib/Language/Elna/Backend/Intermediate.hs8
1 files changed, 4 insertions, 4 deletions
diff --git a/lib/Language/Elna/Backend/Intermediate.hs b/lib/Language/Elna/Backend/Intermediate.hs
index f1a5d7a..c4dcf18 100644
--- a/lib/Language/Elna/Backend/Intermediate.hs
+++ b/lib/Language/Elna/Backend/Intermediate.hs
@@ -17,12 +17,12 @@ instance Show Label
where
show (Label label) = '.' : Text.unpack label
-newtype Variable = TempVariable Word32 -- | Variable Text
+data Variable = TempVariable Word32 | LocalVariable Word32
deriving Eq
instance Show Variable
where
- -- show (Variable variable) = '$' : Text.unpack variable
+ show (LocalVariable variable) = '@' : show variable
show (TempVariable variable) = '$' : show variable
data Operand v
@@ -41,8 +41,8 @@ data Quadruple v
| ProductQuadruple (Operand v) (Operand v) v
| DivisionQuadruple (Operand v) (Operand v) v
| GoToQuadruple Label
- {-| AssignQuadruple Operand Variable
- | ArrayQuadruple Variable Operand Variable
+ | AssignQuadruple (Operand v) v
+ {-| ArrayQuadruple Variable Operand Variable
| ArrayAssignQuadruple Operand Operand Variable -}
| LessOrEqualQuadruple (Operand v) (Operand v) Label
| GreaterOrEqualQuadruple (Operand v) (Operand v) Label