summaryrefslogtreecommitdiff
path: root/lib/Language/Elna/Frontend
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Language/Elna/Frontend')
-rw-r--r--lib/Language/Elna/Frontend/AST.hs20
-rw-r--r--lib/Language/Elna/Frontend/NameAnalysis.hs30
-rw-r--r--lib/Language/Elna/Frontend/Parser.hs16
3 files changed, 33 insertions, 33 deletions
diff --git a/lib/Language/Elna/Frontend/AST.hs b/lib/Language/Elna/Frontend/AST.hs
index 68ac581..5918e8e 100644
--- a/lib/Language/Elna/Frontend/AST.hs
+++ b/lib/Language/Elna/Frontend/AST.hs
@@ -146,18 +146,18 @@ instance Show VariableAccess
-}
data Condition
= EqualCondition Expression Expression
- -- | NonEqualCondition Expression Expression
- -- | LessCondition Expression Expression
- -- | GreaterCondition Expression Expression
- -- | LessOrEqualCondition Expression Expression
- -- | GreaterOrEqualCondition Expression Expression
+ | NonEqualCondition Expression Expression
+ | LessCondition Expression Expression
+ | GreaterCondition Expression Expression
+ | LessOrEqualCondition Expression Expression
+ | GreaterOrEqualCondition Expression Expression
deriving Eq
instance Show Condition
where
show (EqualCondition lhs rhs) = concat [show lhs, " = ", show rhs]
- -- show (NonEqualCondition lhs rhs) = concat [show lhs, " # ", show rhs]
- -- show (LessCondition lhs rhs) = concat [show lhs, " < ", show rhs]
- -- show (GreaterCondition lhs rhs) = concat [show lhs, " > ", show rhs]
- -- show (LessOrEqualCondition lhs rhs) = concat [show lhs, " <= ", show rhs]
- -- show (GreaterOrEqualCondition lhs rhs) = concat [show lhs, " >= ", show rhs]
+ show (NonEqualCondition lhs rhs) = concat [show lhs, " # ", show rhs]
+ show (LessCondition lhs rhs) = concat [show lhs, " < ", show rhs]
+ show (GreaterCondition lhs rhs) = concat [show lhs, " > ", show rhs]
+ show (LessOrEqualCondition lhs rhs) = concat [show lhs, " <= ", show rhs]
+ show (GreaterOrEqualCondition lhs rhs) = concat [show lhs, " >= ", show rhs]
diff --git a/lib/Language/Elna/Frontend/NameAnalysis.hs b/lib/Language/Elna/Frontend/NameAnalysis.hs
index 12e51f8..393ab0d 100644
--- a/lib/Language/Elna/Frontend/NameAnalysis.hs
+++ b/lib/Language/Elna/Frontend/NameAnalysis.hs
@@ -175,21 +175,21 @@ condition :: SymbolTable -> AST.Condition -> NameAnalysis ()
condition globalTable (AST.EqualCondition lhs rhs)
= expression globalTable lhs
>> expression globalTable rhs
---condition globalTable (AST.NonEqualCondition lhs rhs)
--- = expression globalTable lhs
--- >> expression globalTable rhs
---condition globalTable (AST.LessCondition lhs rhs)
--- = expression globalTable lhs
--- >> expression globalTable rhs
---condition globalTable (AST.GreaterCondition lhs rhs)
--- = expression globalTable lhs
--- >> expression globalTable rhs
---condition globalTable (AST.LessOrEqualCondition lhs rhs)
--- = expression globalTable lhs
--- >> expression globalTable rhs
---condition globalTable (AST.GreaterOrEqualCondition lhs rhs)
--- = expression globalTable lhs
--- >> expression globalTable rhs
+condition globalTable (AST.NonEqualCondition lhs rhs)
+ = expression globalTable lhs
+ >> expression globalTable rhs
+condition globalTable (AST.LessCondition lhs rhs)
+ = expression globalTable lhs
+ >> expression globalTable rhs
+condition globalTable (AST.GreaterCondition lhs rhs)
+ = expression globalTable lhs
+ >> expression globalTable rhs
+condition globalTable (AST.LessOrEqualCondition lhs rhs)
+ = expression globalTable lhs
+ >> expression globalTable rhs
+condition globalTable (AST.GreaterOrEqualCondition lhs rhs)
+ = expression globalTable lhs
+ >> expression globalTable rhs
{-
variableAccess :: SymbolTable -> AST.VariableAccess -> NameAnalysis ()
variableAccess globalTable (AST.ArrayAccess arrayExpression indexExpression)
diff --git a/lib/Language/Elna/Frontend/Parser.hs b/lib/Language/Elna/Frontend/Parser.hs
index 9dd3206..e85f3b1 100644
--- a/lib/Language/Elna/Frontend/Parser.hs
+++ b/lib/Language/Elna/Frontend/Parser.hs
@@ -105,12 +105,12 @@ conditionP = do
conditionCons lhs <$> expressionP
where
comparisonOperator =
- --, symbol "<" >> pure LessCondition
- --, symbol "<=" >> pure LessOrEqualCondition
- --, symbol ">" >> pure GreaterCondition
- --, symbol ">=" >> pure GreaterOrEqualCondition
- [ symbol "=" >> pure EqualCondition
- --, symbol "#" >> pure NonEqualCondition
+ [ symbol "<=" >> pure LessOrEqualCondition
+ , symbol "<" >> pure LessCondition
+ , symbol ">=" >> pure GreaterOrEqualCondition
+ , symbol ">" >> pure GreaterCondition
+ , symbol "=" >> pure EqualCondition
+ , symbol "#" >> pure NonEqualCondition
]
symbol :: Text -> Parser Text
@@ -183,8 +183,8 @@ statementP :: Parser Statement
statementP
= EmptyStatement <$ semicolonP
<|> ifElseP
- {-<|> CompoundStatement <$> blockP (many statementP)
- <|> try assignmentP
+ <|> CompoundStatement <$> blockP (many statementP)
+ {-<|> try assignmentP
<|> try whileP -}
<|> callP
<?> "statement"