summaryrefslogtreecommitdiff
path: root/lib/Language/Elna/Frontend/NameAnalysis.hs
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Language/Elna/Frontend/NameAnalysis.hs')
-rw-r--r--lib/Language/Elna/Frontend/NameAnalysis.hs52
1 files changed, 26 insertions, 26 deletions
diff --git a/lib/Language/Elna/Frontend/NameAnalysis.hs b/lib/Language/Elna/Frontend/NameAnalysis.hs
index 18ae6dd..12e51f8 100644
--- a/lib/Language/Elna/Frontend/NameAnalysis.hs
+++ b/lib/Language/Elna/Frontend/NameAnalysis.hs
@@ -160,17 +160,37 @@ statement globalTable (AST.CallStatement name arguments)
>> traverse_ (expression globalTable) arguments
statement globalTable (AST.CompoundStatement statements) =
traverse_ (statement globalTable) statements
-{- statement globalTable (AST.AssignmentStatement lvalue rvalue)
- = variableAccess globalTable lvalue
- >> expression globalTable rvalue
statement globalTable (AST.IfStatement ifCondition ifStatement elseStatement)
= condition globalTable ifCondition
>> statement globalTable ifStatement
>> maybe (pure ()) (statement globalTable) elseStatement
-statement globalTable (AST.WhileStatement whileCondition loop)
- = condition globalTable whileCondition
- >> statement globalTable loop
+-- statement globalTable (AST.AssignmentStatement lvalue rvalue)
+-- = variableAccess globalTable lvalue
+-- >> expression globalTable rvalue
+--statement globalTable (AST.WhileStatement whileCondition loop)
+-- = condition globalTable whileCondition
+-- >> statement globalTable loop
+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
+{-
variableAccess :: SymbolTable -> AST.VariableAccess -> NameAnalysis ()
variableAccess globalTable (AST.ArrayAccess arrayExpression indexExpression)
= variableAccess globalTable arrayExpression
@@ -178,26 +198,6 @@ variableAccess globalTable (AST.ArrayAccess arrayExpression indexExpression)
variableAccess globalTable (AST.VariableAccess identifier) =
checkSymbol globalTable identifier
-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
-
enter :: Identifier -> Info -> SymbolTable -> NameAnalysis SymbolTable
enter identifier info table
= maybe (identifierAlreadyDefinedError identifier) pure