Support break statements
All checks were successful
continuous-integration/drone/push Build is passing

This commit is contained in:
2019-06-27 15:55:46 +02:00
parent 46197e0a6e
commit 3367e60ae5
8 changed files with 80 additions and 9 deletions

View File

@@ -48,6 +48,9 @@ namespace Porygon::Binder {
return this->BindNumericalForStatement(statement);
case ParsedStatementKind::GenericFor:
return this -> BindGenericForStatement(statement);
case ParsedStatementKind::Break:
//TODO: Validate we're in a loop
return new BoundBreakStatement();
case ParsedStatementKind::Bad:
return new BoundBadStatement();
}

View File

@@ -22,6 +22,7 @@ namespace Porygon::Binder {
Conditional,
NumericalFor,
GenericFor,
Break,
};
class BoundStatement {
@@ -38,6 +39,13 @@ namespace Porygon::Binder {
}
};
class BoundBreakStatement : public BoundStatement {
public:
const BoundStatementKind GetKind() const final {
return BoundStatementKind::Break;
}
};
class BoundBlockStatement : public BoundStatement {
const vector<BoundStatement *> _statements;
public: