diff options
Diffstat (limited to 'lib/Language/Elna/Frontend/NameAnalysis.hs')
| -rw-r--r-- | lib/Language/Elna/Frontend/NameAnalysis.hs | 52 |
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 |
