2021-12-28 01:21:47 +08:00
|
|
|
#include "PikaObj.h"
|
|
|
|
|
|
|
|
Arg* PikaStdLib_RangeObj___next__(PikaObj* self) {
|
2022-01-04 19:11:47 +08:00
|
|
|
int a1 = args_getInt(self->list, "a1");
|
|
|
|
int a2 = args_getInt(self->list, "a2");
|
2021-12-28 01:21:47 +08:00
|
|
|
int start = 0;
|
|
|
|
int end = 0;
|
|
|
|
int foot = 1;
|
|
|
|
/* only start and end */
|
2022-03-30 01:22:25 +08:00
|
|
|
start = a1;
|
|
|
|
end = a2;
|
2021-12-28 01:21:47 +08:00
|
|
|
/* start */
|
2022-01-04 19:11:47 +08:00
|
|
|
int iter_i = args_getInt(self->list, "iter_i");
|
2021-12-28 01:21:47 +08:00
|
|
|
/* iter_i is not inited */
|
|
|
|
if (-999999999 == iter_i) {
|
|
|
|
iter_i = start;
|
|
|
|
}
|
|
|
|
/* exit */
|
|
|
|
if (iter_i >= end) {
|
|
|
|
return arg_setNull(NULL);
|
|
|
|
}
|
2022-01-04 19:11:47 +08:00
|
|
|
args_setInt(self->list, "iter_i", iter_i + foot);
|
2021-12-28 01:21:47 +08:00
|
|
|
return arg_setInt(NULL, "", iter_i);
|
2022-01-13 16:31:30 +08:00
|
|
|
}
|