This commit is contained in:
blueloveTH 2023-06-25 17:25:09 +08:00
parent e464c638ad
commit f404724aaf
2 changed files with 29 additions and 1 deletions

View File

@ -15,6 +15,34 @@ class deque:
for value in iterable:
self.append(value)
def __getitem__(self, index):
assert 0 <= index < len(self)
node = self.head.next
for _ in range(index):
node = node.next
return node.value
def __setitem__(self, index, value):
assert 0 <= index < len(self)
node = self.head.next
for _ in range(index):
node = node.next
node.value = value
def __delitem__(self, index):
assert 0 <= index < len(self)
node = self.head.next
for _ in range(index):
node = node.next
node.prev.next = node.next
node.next.prev = node.prev
self.size -= 1
def clear(self):
self.head.next = self.tail
self.tail.prev = self.head
self.size = 0
def append(self, value):
node = _LinkedListNode(self.tail.prev, self.tail, value)
self.tail.prev.next = node

View File

@ -952,7 +952,7 @@ __SUBSCR_END:
consume(TK("="));
PyObject* value = read_literal();
if(value == nullptr){
SyntaxError(Str("expect a literal, not ") + TK_STR(curr().type));
SyntaxError(Str("default argument must be a literal"));
}
decl->kwargs.push_back(FuncDecl::KwArg{index, value});
} break;