summaryrefslogtreecommitdiff
path: root/lib/Language/Elna/Frontend/AST.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/Frontend/AST.hs
parente2d4b76c0bbad6c0740f5322e862a02971802e87 (diff)
downloadelna-060496fc6ee331e2710ff8ade23317a0a79cbd6c.tar.gz
Parse local variables
Diffstat (limited to 'lib/Language/Elna/Frontend/AST.hs')
-rw-r--r--lib/Language/Elna/Frontend/AST.hs26
1 files changed, 13 insertions, 13 deletions
diff --git a/lib/Language/Elna/Frontend/AST.hs b/lib/Language/Elna/Frontend/AST.hs
index 037e6ca..e334370 100644
--- a/lib/Language/Elna/Frontend/AST.hs
+++ b/lib/Language/Elna/Frontend/AST.hs
@@ -6,7 +6,7 @@ module Language.Elna.Frontend.AST
, Statement(..)
, TypeExpression(..)
, VariableDeclaration(..)
- --, VariableAccess(..)
+ , VariableAccess(..)
, Condition(..)
, Expression(..)
, Literal(..)
@@ -70,8 +70,8 @@ instance Show TypeExpression
data Statement
= EmptyStatement
| IfStatement Condition Statement (Maybe Statement)
- {-| AssignmentStatement VariableAccess Expression
- | WhileStatement Condition Statement -}
+ | AssignmentStatement VariableAccess Expression
+ -- | WhileStatement Condition Statement
| CompoundStatement [Statement]
| CallStatement Identifier [Expression]
deriving Eq
@@ -84,9 +84,9 @@ instance Show Statement
, show if'
, maybe "" ((<> " else ") . show) else'
]
- {-show (AssignmentStatement lhs rhs) =
+ show (AssignmentStatement lhs rhs) =
concat [show lhs, " := ", show rhs, ";"]
- show (WhileStatement expression statement) =
+ {-show (WhileStatement expression statement) =
concat ["while (", show expression, ") ", show statement, ";"]-}
show (CompoundStatement statements) =
concat ["{\n", unlines (show <$> statements), " }"]
@@ -163,7 +163,7 @@ data Expression
| NegationExpression Expression
| ProductExpression Expression Expression
| DivisionExpression Expression Expression
- -- | VariableExpression VariableAccess
+ | VariableExpression VariableAccess
deriving Eq
instance Show Expression
@@ -174,19 +174,19 @@ instance Show Expression
show (NegationExpression negation) = '-' : show negation
show (ProductExpression lhs rhs) = concat [show lhs, " * ", show rhs]
show (DivisionExpression lhs rhs) = concat [show lhs, " / ", show rhs]
- -- show (VariableExpression variable) = show variable
-{-
-data VariableAccess
+ show (VariableExpression variable) = show variable
+
+newtype VariableAccess
= VariableAccess Identifier
- | ArrayAccess VariableAccess Expression
+ -- | ArrayAccess VariableAccess Expression
deriving Eq
instance Show VariableAccess
where
show (VariableAccess variableName) = show variableName
- show (ArrayAccess arrayAccess elementIndex) =
- concat [show arrayAccess, "[", show elementIndex, "]"]
--}
+ {- show (ArrayAccess arrayAccess elementIndex) =
+ concat [show arrayAccess, "[", show elementIndex, "]"] -}
+
data Condition
= EqualCondition Expression Expression
| NonEqualCondition Expression Expression