summaryrefslogtreecommitdiff
path: root/lib/Language/Elna/Frontend
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2024-10-06 18:07:57 +0200
committerEugen Wissner <belka@caraus.de>2024-10-06 18:09:08 +0200
commit699cc8684b1571d2501bac2c8bdf461127a420a1 (patch)
tree9caecb24007eda52a074f348bbd613da033a2069 /lib/Language/Elna/Frontend
parent35742aa52587400950cf25170c2247f98f498d4d (diff)
downloadelna-699cc8684b1571d2501bac2c8bdf461127a420a1.tar.gz
Implement division
Diffstat (limited to 'lib/Language/Elna/Frontend')
-rw-r--r--lib/Language/Elna/Frontend/AST.hs8
-rw-r--r--lib/Language/Elna/Frontend/NameAnalysis.hs4
-rw-r--r--lib/Language/Elna/Frontend/Parser.hs2
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