generator.c 651 B

12345678910111213141516171819202122
  1. #include "pocketpy/interpreter/generator.h"
  2. #include "pocketpy/interpreter/frame.h"
  3. #include "pocketpy/interpreter/vm.h"
  4. #include "pocketpy/pocketpy.h"
  5. void pk_newgenerator(py_Ref out, Frame* frame, int slots) {
  6. Generator* ud = py_newobject(out, tp_generator, slots, sizeof(Generator));
  7. ud->frame = frame;
  8. ud->state = 0;
  9. }
  10. static bool generator__next__(int argc, py_Ref argv){
  11. return true;
  12. }
  13. py_Type pk_generator__register() {
  14. py_Type type = pk_newtype("generator", tp_object, NULL, NULL, false, true);
  15. py_bindmagic(type, __iter__, pk_wrapper__self);
  16. py_bindmagic(type, __next__, generator__next__);
  17. return type;
  18. }