diff options
Diffstat (limited to 'src/analysis')
-rw-r--r-- | src/analysis/analysis.cpp | 4 | ||||
-rw-r--r-- | src/analysis/statement.cpp | 6 | ||||
-rw-r--r-- | src/analysis/statement.h | 5 |
3 files changed, 15 insertions, 0 deletions
diff --git a/src/analysis/analysis.cpp b/src/analysis/analysis.cpp index e35de85..32c0170 100644 --- a/src/analysis/analysis.cpp +++ b/src/analysis/analysis.cpp @@ -55,6 +55,7 @@ #include "nodes/ref/component_ref.h" +#include "nodes/stmt/break_stmt.h" #include "nodes/stmt/continue_stmt.h" #include "nodes/stmt/if_stmt.h" #include "nodes/stmt/while_stmt.h" @@ -278,6 +279,9 @@ void analyseNode(Node *node, const WalkItem &wi, WalkItem &wo) case VAR_DECL: analyseVarDecl(static_cast<VarDeclNode*>(node), wi2, wo); break; + case BREAK_STMT: + analyseBreakStmt(static_cast<BreakStmtNode*>(node), wi2, wo); + break; case IF_STMT: analyseIfStmt(static_cast<IfStmtNode*>(node), wi2, wo); break; diff --git a/src/analysis/statement.cpp b/src/analysis/statement.cpp index e22cdae..5e6ea7a 100644 --- a/src/analysis/statement.cpp +++ b/src/analysis/statement.cpp @@ -34,6 +34,7 @@ #include "nodes/ref/indirect_ref.h" +#include "nodes/stmt/break_stmt.h" #include "nodes/stmt/continue_stmt.h" #include "nodes/stmt/if_stmt.h" #include "nodes/stmt/while_stmt.h" @@ -285,4 +286,9 @@ void analyseContinueStmt(ContinueStmtNode *node, const WalkItem &wi, WalkItem &w wo.isContinued = true; } +void analyseBreakStmt(BreakStmtNode *node, const WalkItem &wi, WalkItem &wo) +{ + wo.isContinued = true; +} + } diff --git a/src/analysis/statement.h b/src/analysis/statement.h index 5637da7..c24e50a 100644 --- a/src/analysis/statement.h +++ b/src/analysis/statement.h @@ -22,6 +22,7 @@ #include "includes.h" +struct BreakStmtNode; struct ContinueStmtNode; struct IfStmtNode; struct Node; @@ -45,6 +46,10 @@ namespace Analysis const WalkItem &wi, WalkItem &wo); + void analyseBreakStmt(BreakStmtNode *node, + const WalkItem &wi, + WalkItem &wo); + void analyseContinueStmt(ContinueStmtNode *node, const WalkItem &wi, WalkItem &wo); |