diff options
| author | Eugen Wissner <belka@caraus.de> | 2024-11-06 22:23:49 +0100 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2024-11-06 22:23:49 +0100 |
| commit | 060496fc6ee331e2710ff8ade23317a0a79cbd6c (patch) | |
| tree | 9af7b8f8767449bea7ae9a76e244141118ae5e75 /lib/Language/Elna/Frontend/AST.hs | |
| parent | e2d4b76c0bbad6c0740f5322e862a02971802e87 (diff) | |
| download | elna-060496fc6ee331e2710ff8ade23317a0a79cbd6c.tar.gz | |
Parse local variables
Diffstat (limited to 'lib/Language/Elna/Frontend/AST.hs')
| -rw-r--r-- | lib/Language/Elna/Frontend/AST.hs | 26 |
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 |
