mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-20 03:20:18 +00:00
add ++i
and --j
syntax
This commit is contained in:
parent
6f28e44f22
commit
1ff6f92b94
@ -38,7 +38,7 @@ def enumerate(iterable, start=0):
|
|||||||
n = start
|
n = start
|
||||||
for elem in iterable:
|
for elem in iterable:
|
||||||
yield n, elem
|
yield n, elem
|
||||||
n += 1
|
++n
|
||||||
|
|
||||||
def sum(iterable):
|
def sum(iterable):
|
||||||
res = 0
|
res = 0
|
||||||
@ -87,7 +87,7 @@ def str@split(self, sep):
|
|||||||
self = self[i+len(sep):]
|
self = self[i+len(sep):]
|
||||||
i = 0
|
i = 0
|
||||||
else:
|
else:
|
||||||
i += 1
|
++i
|
||||||
res.append(self)
|
res.append(self)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
@ -104,10 +104,10 @@ def str@strip(self, chars=None):
|
|||||||
chars = chars or ' \t\n\r'
|
chars = chars or ' \t\n\r'
|
||||||
i = 0
|
i = 0
|
||||||
while i < len(self) and self[i] in chars:
|
while i < len(self) and self[i] in chars:
|
||||||
i += 1
|
++i
|
||||||
j = len(self) - 1
|
j = len(self) - 1
|
||||||
while j >= 0 and self[j] in chars:
|
while j >= 0 and self[j] in chars:
|
||||||
j -= 1
|
--j
|
||||||
return self[i:j+1]
|
return self[i:j+1]
|
||||||
|
|
||||||
##### list #####
|
##### list #####
|
||||||
@ -122,12 +122,11 @@ def __qsort(a: list, L: int, R: int, key):
|
|||||||
mid = key(mid)
|
mid = key(mid)
|
||||||
i, j = L, R
|
i, j = L, R
|
||||||
while i<=j:
|
while i<=j:
|
||||||
while key(a[i])<mid: i+=1
|
while key(a[i])<mid: ++i;
|
||||||
while key(a[j])>mid: j-=1
|
while key(a[j])>mid: --j;
|
||||||
if i<=j:
|
if i<=j:
|
||||||
a[i], a[j] = a[j], a[i]
|
a[i], a[j] = a[j], a[i]
|
||||||
i+=1
|
++i; --j;
|
||||||
j-=1
|
|
||||||
__qsort(a, L, j, key)
|
__qsort(a, L, j, key)
|
||||||
__qsort(a, i, R, key)
|
__qsort(a, i, R, key)
|
||||||
|
|
||||||
|
4
src/vm.h
4
src/vm.h
@ -934,10 +934,10 @@ inline std::string _opcode_argstr(VM* vm, Bytecode byte, const CodeObject* co){
|
|||||||
case OP_LOAD_NAME: case OP_LOAD_GLOBAL: case OP_LOAD_NONLOCAL: case OP_STORE_GLOBAL:
|
case OP_LOAD_NAME: case OP_LOAD_GLOBAL: case OP_LOAD_NONLOCAL: case OP_STORE_GLOBAL:
|
||||||
case OP_LOAD_ATTR: case OP_LOAD_METHOD: case OP_STORE_ATTR: case OP_DELETE_ATTR:
|
case OP_LOAD_ATTR: case OP_LOAD_METHOD: case OP_STORE_ATTR: case OP_DELETE_ATTR:
|
||||||
case OP_IMPORT_NAME: case OP_BEGIN_CLASS:
|
case OP_IMPORT_NAME: case OP_BEGIN_CLASS:
|
||||||
case OP_DELETE_GLOBAL:
|
case OP_DELETE_GLOBAL: case OP_INC_GLOBAL: case OP_DEC_GLOBAL:
|
||||||
argStr += fmt(" (", StrName(byte.arg).sv(), ")");
|
argStr += fmt(" (", StrName(byte.arg).sv(), ")");
|
||||||
break;
|
break;
|
||||||
case OP_LOAD_FAST: case OP_STORE_FAST: case OP_DELETE_FAST:
|
case OP_LOAD_FAST: case OP_STORE_FAST: case OP_DELETE_FAST: case OP_INC_FAST: case OP_DEC_FAST:
|
||||||
argStr += fmt(" (", co->varnames[byte.arg].sv(), ")");
|
argStr += fmt(" (", co->varnames[byte.arg].sv(), ")");
|
||||||
break;
|
break;
|
||||||
case OP_LOAD_FUNCTION:
|
case OP_LOAD_FUNCTION:
|
||||||
|
15
tests/29_incdec.py
Normal file
15
tests/29_incdec.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
a = 1
|
||||||
|
|
||||||
|
++a
|
||||||
|
assert a == 2
|
||||||
|
++a; ++a; --a;
|
||||||
|
assert a == 3
|
||||||
|
|
||||||
|
def f(a):
|
||||||
|
++a
|
||||||
|
++a
|
||||||
|
--a
|
||||||
|
return a
|
||||||
|
|
||||||
|
assert f(3) == 4
|
||||||
|
assert f(-2) == -1
|
Loading…
x
Reference in New Issue
Block a user