diff options
| author | Eugen Wissner <belka@caraus.de> | 2024-10-06 18:07:57 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2024-10-06 18:09:08 +0200 |
| commit | 699cc8684b1571d2501bac2c8bdf461127a420a1 (patch) | |
| tree | 9caecb24007eda52a074f348bbd613da033a2069 /lib/Language/Elna/Frontend | |
| parent | 35742aa52587400950cf25170c2247f98f498d4d (diff) | |
| download | elna-699cc8684b1571d2501bac2c8bdf461127a420a1.tar.gz | |
Implement division
Diffstat (limited to 'lib/Language/Elna/Frontend')
| -rw-r--r-- | lib/Language/Elna/Frontend/AST.hs | 8 | ||||
| -rw-r--r-- | lib/Language/Elna/Frontend/NameAnalysis.hs | 4 | ||||
| -rw-r--r-- | lib/Language/Elna/Frontend/Parser.hs | 2 |
3 files changed, 7 insertions, 7 deletions
diff --git a/lib/Language/Elna/Frontend/AST.hs b/lib/Language/Elna/Frontend/AST.hs index 4c1c20b..b9ed539 100644 --- a/lib/Language/Elna/Frontend/AST.hs +++ b/lib/Language/Elna/Frontend/AST.hs @@ -119,8 +119,8 @@ data Expression | SubtractionExpression Expression Expression | NegationExpression Expression | ProductExpression Expression Expression -{- | VariableExpression VariableAccess - | DivisionExpression Expression Expression -} + | DivisionExpression Expression Expression + -- | VariableExpression VariableAccess deriving Eq instance Show Expression @@ -130,8 +130,8 @@ instance Show Expression show (SubtractionExpression lhs rhs) = concat [show lhs, " - ", show rhs] show (NegationExpression negation) = '-' : show negation show (ProductExpression lhs rhs) = concat [show lhs, " * ", show rhs] - {- show (VariableExpression variable) = show variable - show (DivisionExpression lhs rhs) = concat [show lhs, " / ", show rhs] -} + show (DivisionExpression lhs rhs) = concat [show lhs, " / ", show rhs] + -- show (VariableExpression variable) = show variable {- data VariableAccess = VariableAccess Identifier diff --git a/lib/Language/Elna/Frontend/NameAnalysis.hs b/lib/Language/Elna/Frontend/NameAnalysis.hs index dc39826..18ae6dd 100644 --- a/lib/Language/Elna/Frontend/NameAnalysis.hs +++ b/lib/Language/Elna/Frontend/NameAnalysis.hs @@ -147,11 +147,11 @@ expression globalTable (AST.NegationExpression negation) = expression globalTable (AST.ProductExpression lhs rhs) = expression globalTable lhs >> expression globalTable rhs -{- expression globalTable (AST.VariableExpression variableExpression) = - variableAccess globalTable variableExpression expression globalTable (AST.DivisionExpression lhs rhs) = expression globalTable lhs >> expression globalTable rhs +{- expression globalTable (AST.VariableExpression variableExpression) = + variableAccess globalTable variableExpression -} statement :: SymbolTable -> AST.Statement -> NameAnalysis () statement _ AST.EmptyStatement = pure () diff --git a/lib/Language/Elna/Frontend/Parser.hs b/lib/Language/Elna/Frontend/Parser.hs index 75f359e..9d6bb60 100644 --- a/lib/Language/Elna/Frontend/Parser.hs +++ b/lib/Language/Elna/Frontend/Parser.hs @@ -80,7 +80,7 @@ operatorTable = ] factorOperator = [ binary "*" ProductExpression - -- , binary "/" DivisionExpression + , binary "/" DivisionExpression ] termOperator = [ binary "+" SumExpression |
