40 lines
705 B
C++
40 lines
705 B
C++
/*
|
|
* RepeatStatement.cpp
|
|
*
|
|
* Created on: Dec 9, 2012
|
|
* Author: attero
|
|
*/
|
|
|
|
#include "RepeatStatement.h"
|
|
|
|
RepeatStatement::RepeatStatement(ASTExpression * expr, ASTStatement * statement)
|
|
{
|
|
body = statement;
|
|
how_many_times_expr = expr;
|
|
this->type = "RepeatStatement";
|
|
}
|
|
|
|
RepeatStatement::~RepeatStatement()
|
|
{
|
|
delete body;
|
|
delete how_many_times_expr;
|
|
}
|
|
|
|
|
|
SenchaObject RepeatStatement::execute()
|
|
{
|
|
auto value = how_many_times_expr->execute();
|
|
if(value.type == SenchaObject::integer_number)
|
|
{
|
|
int how_many_times = value.integer;
|
|
|
|
for(int i = 0; i < how_many_times; i++)
|
|
{
|
|
if(i == how_many_times - 1) return body->execute();
|
|
else body->execute();
|
|
}
|
|
}
|
|
|
|
return SenchaObject();
|
|
}
|