#include "Expr.hpp" #include "ForStatement.h" ForStatement::ForStatement(SourceLocation forLocation, AssignStatement *init, Expr *cond, Statement *body, Expr *inc): _forLocation(forLocation) { _subStmts[INIT] = init; _subStmts[COND] = cond; _subStmts[BODY] = body; if(inc) _subStmts[INC] = inc; } AssignStatement *ForStatement::getInit() { return reinterpret_cast(_subStmts.at(INIT)); } const AssignStatement *ForStatement::getInit() const { return reinterpret_cast(_subStmts.at(INIT)); } void ForStatement::setInit(AssignStatement *init) { _subStmts[INIT] = init; } Expr *ForStatement::getCond() { return reinterpret_cast(_subStmts.at(COND)); } const Expr *ForStatement::getCond() const { return reinterpret_cast(_subStmts.at(COND)); } void ForStatement::setCond(Expr *cond) { _subStmts[COND] = cond; } Expr *ForStatement::getInc() { return reinterpret_cast(_subStmts.at(INC)); } const Expr *ForStatement::getInc() const { return reinterpret_cast(_subStmts.at(INC)); } void ForStatement::setInc(Expr *inc) { _subStmts[INC] = inc; } Statement *ForStatement::getBody() { return _subStmts.at(BODY); } const Statement *ForStatement::getBody() const { return _subStmts.at(BODY); } void ForStatement::setBody(Statement *body) { _subStmts[BODY] = body; } SourceLocation ForStatement::getForLocation() const { return _forLocation; } void ForStatement::setForLocation(SourceLocation loc) { _forLocation = loc; }