sencha-lang/Sencha-lang/AST/RepeatStatement.cpp

51 lines
740 B
C++
Raw Normal View History

/*
* RepeatStatement.cpp
*
* Created on: Dec 9, 2012
* Author: attero
*/
#include "RepeatStatement.h"
RepeatStatement::RepeatStatement()
{
how_many_times = 0;
body = NULL;
this->type = "RepeatStatement";
}
RepeatStatement::~RepeatStatement()
{
delete body;
}
void RepeatStatement::add_body(ASTStatement * statement)
{
body = statement;
}
SenchaObject RepeatStatement::execute()
{
for(int i = 0; i < how_many_times; i++)
{
if(i == how_many_times - 1) return body->execute();
else body->execute();
}
return SenchaObject();
}
void RepeatStatement::add_iteration_number(SenchaObject so)
{
if(so.type == SenchaObject::integer_number)
{
how_many_times = so.integer;
}
else
{
how_many_times = 0;
}
}