blueloveTH 2 anni fa
parent
commit
718edd9b9d
2 ha cambiato i file con 13 aggiunte e 0 eliminazioni
  1. 4 0
      python/collections.py
  2. 9 0
      src/pocketpy.h

+ 4 - 0
python/collections.py

@@ -43,6 +43,10 @@ class deque:
         self.tail.prev = self.head
         self.tail.prev = self.head
         self.size = 0
         self.size = 0
 
 
+    def extend(self, iterable):
+        for value in iterable:
+            self.append(value)
+
     def append(self, value):
     def append(self, value):
         node = _LinkedListNode(self.tail.prev, self.tail, value)
         node = _LinkedListNode(self.tail.prev, self.tail, value)
         self.tail.prev.next = node
         self.tail.prev.next = node

+ 9 - 0
src/pocketpy.h

@@ -449,6 +449,15 @@ inline void init_builtins(VM* _vm) {
         for(i64 i = 0; i < n; i++) ss << self.sv();
         for(i64 i = 0; i < n; i++) ss << self.sv();
         return VAR(ss.str());
         return VAR(ss.str());
     });
     });
+
+    _vm->bind_method<1>("str", "__rmul__", [](VM* vm, ArgsView args) {
+        const Str& self = _CAST(Str&, args[0]);
+        i64 n = CAST(i64, args[1]);
+        std::stringstream ss;
+        for(i64 i = 0; i < n; i++) ss << self.sv();
+        return VAR(ss.str());
+    });
+
     _vm->bind__contains__(_vm->tp_str, [](VM* vm, PyObject* lhs, PyObject* rhs) {
     _vm->bind__contains__(_vm->tp_str, [](VM* vm, PyObject* lhs, PyObject* rhs) {
         const Str& self = _CAST(Str&, lhs);
         const Str& self = _CAST(Str&, lhs);
         return VAR(self.index(CAST(Str&, rhs)) != -1);
         return VAR(self.index(CAST(Str&, rhs)) != -1);