@Override
	public RunResults run(Context context) {
		
		long from = 0;
		long to = 0;
		
		if( context.variableExists(_from) ) {
			String sFrom = context.getVariable(_from).toString();
			if( !ParsingHelper.isNumeric(sFrom) ) {
				context.addError("Invalid variable");
				return RunResults.Fail;
			}
			else
				from = Integer.parseInt(sFrom);
		}
		else
			from = Integer.parseInt(_from);
		
		context.updateVariable(_var, new Value(from));
		
		if( context.variableExists(_to) ) {
			String sTo = context.getVariable(_to).toString();
			if( !ParsingHelper.isNumeric(sTo) ) {
				context.addError("Invalid variable");
				return RunResults.Fail;
			}
			else
				to = Integer.parseInt(sTo);
		}
		else
			to = Integer.parseInt(_to);

		
		while(true) {
			
			long iter = context.getVariable(_var).val();
			
			if( iter > to )
				break;
			
			for(FunctionBase function:_functions)
				function.run(context);
			
			if(iter < to)
				context.updateVariable(_var, new Value(++iter));
			else
				if(iter > to)
					context.updateVariable(_var, new Value(--iter));
				else 
					break;
		}
		
		return RunResults.Success;
	}