mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-21 03:50:16 +00:00
some fix
This commit is contained in:
parent
52b210b016
commit
c5ab28d75b
@ -29,62 +29,9 @@ extern "C" {
|
||||
namespace pkpy {
|
||||
#endif
|
||||
|
||||
// unary operators
|
||||
extern uint16_t __repr__;
|
||||
extern uint16_t __str__;
|
||||
extern uint16_t __hash__;
|
||||
extern uint16_t __len__;
|
||||
extern uint16_t __iter__;
|
||||
extern uint16_t __next__;
|
||||
extern uint16_t __neg__;
|
||||
// logical operators
|
||||
extern uint16_t __eq__;
|
||||
extern uint16_t __ne__;
|
||||
extern uint16_t __lt__;
|
||||
extern uint16_t __le__;
|
||||
extern uint16_t __gt__;
|
||||
extern uint16_t __ge__;
|
||||
extern uint16_t __contains__;
|
||||
// binary operators
|
||||
extern uint16_t __add__;
|
||||
extern uint16_t __radd__;
|
||||
extern uint16_t __sub__;
|
||||
extern uint16_t __rsub__;
|
||||
extern uint16_t __mul__;
|
||||
extern uint16_t __rmul__;
|
||||
extern uint16_t __truediv__;
|
||||
extern uint16_t __rtruediv__;
|
||||
extern uint16_t __floordiv__;
|
||||
extern uint16_t __rfloordiv__;
|
||||
extern uint16_t __mod__;
|
||||
extern uint16_t __rmod__;
|
||||
extern uint16_t __pow__;
|
||||
extern uint16_t __rpow__;
|
||||
extern uint16_t __matmul__;
|
||||
extern uint16_t __lshift__;
|
||||
extern uint16_t __rshift__;
|
||||
extern uint16_t __and__;
|
||||
extern uint16_t __or__;
|
||||
extern uint16_t __xor__;
|
||||
extern uint16_t __invert__;
|
||||
// indexer
|
||||
extern uint16_t __getitem__;
|
||||
extern uint16_t __setitem__;
|
||||
extern uint16_t __delitem__;
|
||||
|
||||
// specials
|
||||
extern uint16_t __new__;
|
||||
extern uint16_t __init__;
|
||||
extern uint16_t __call__;
|
||||
extern uint16_t __divmod__;
|
||||
extern uint16_t __enter__;
|
||||
extern uint16_t __exit__;
|
||||
extern uint16_t __name__;
|
||||
extern uint16_t __all__;
|
||||
extern uint16_t __package__;
|
||||
extern uint16_t __path__;
|
||||
extern uint16_t __class__;
|
||||
extern uint16_t __missing__;
|
||||
#define MAGIC_METHOD(x) extern uint16_t x;
|
||||
#include "pocketpy/xmacros/magics.h"
|
||||
#undef MAGIC_METHOD
|
||||
|
||||
extern uint16_t pk_id_add;
|
||||
extern uint16_t pk_id_set;
|
||||
|
62
include/pocketpy/xmacros/magics.h
Normal file
62
include/pocketpy/xmacros/magics.h
Normal file
@ -0,0 +1,62 @@
|
||||
#ifdef MAGIC_METHOD
|
||||
|
||||
// unary operators
|
||||
MAGIC_METHOD(__repr__)
|
||||
MAGIC_METHOD(__str__)
|
||||
MAGIC_METHOD(__hash__)
|
||||
MAGIC_METHOD(__len__)
|
||||
MAGIC_METHOD(__iter__)
|
||||
MAGIC_METHOD(__next__)
|
||||
MAGIC_METHOD(__neg__)
|
||||
MAGIC_METHOD(__invert__)
|
||||
// logical operators
|
||||
MAGIC_METHOD(__contains__)
|
||||
/////////////////////////////
|
||||
MAGIC_METHOD(__eq__)
|
||||
MAGIC_METHOD(__ne__)
|
||||
MAGIC_METHOD(__lt__)
|
||||
MAGIC_METHOD(__le__)
|
||||
MAGIC_METHOD(__gt__)
|
||||
MAGIC_METHOD(__ge__)
|
||||
// binary operators
|
||||
MAGIC_METHOD(__add__)
|
||||
MAGIC_METHOD(__radd__)
|
||||
MAGIC_METHOD(__sub__)
|
||||
MAGIC_METHOD(__rsub__)
|
||||
MAGIC_METHOD(__mul__)
|
||||
MAGIC_METHOD(__rmul__)
|
||||
MAGIC_METHOD(__truediv__)
|
||||
MAGIC_METHOD(__rtruediv__)
|
||||
MAGIC_METHOD(__floordiv__)
|
||||
MAGIC_METHOD(__rfloordiv__)
|
||||
MAGIC_METHOD(__mod__)
|
||||
MAGIC_METHOD(__rmod__)
|
||||
MAGIC_METHOD(__pow__)
|
||||
MAGIC_METHOD(__rpow__)
|
||||
MAGIC_METHOD(__matmul__)
|
||||
MAGIC_METHOD(__lshift__)
|
||||
MAGIC_METHOD(__rshift__)
|
||||
MAGIC_METHOD(__and__)
|
||||
MAGIC_METHOD(__or__)
|
||||
MAGIC_METHOD(__xor__)
|
||||
/////////////////////////////
|
||||
// indexer
|
||||
MAGIC_METHOD(__getitem__)
|
||||
MAGIC_METHOD(__setitem__)
|
||||
MAGIC_METHOD(__delitem__)
|
||||
|
||||
// specials
|
||||
MAGIC_METHOD(__new__)
|
||||
MAGIC_METHOD(__init__)
|
||||
MAGIC_METHOD(__call__)
|
||||
MAGIC_METHOD(__divmod__)
|
||||
MAGIC_METHOD(__enter__)
|
||||
MAGIC_METHOD(__exit__)
|
||||
MAGIC_METHOD(__name__)
|
||||
MAGIC_METHOD(__all__)
|
||||
MAGIC_METHOD(__package__)
|
||||
MAGIC_METHOD(__path__)
|
||||
MAGIC_METHOD(__class__)
|
||||
MAGIC_METHOD(__missing__)
|
||||
|
||||
#endif
|
@ -19,66 +19,13 @@ void pk_StrName__initialize() {
|
||||
c11_vector__ctor(&_r_interned, sizeof(c11_string));
|
||||
_initialized = true;
|
||||
|
||||
// unary operators
|
||||
__repr__ = pk_StrName__map("__repr__");
|
||||
__str__ = pk_StrName__map("__str__");
|
||||
__hash__ = pk_StrName__map("__hash__");
|
||||
__len__ = pk_StrName__map("__len__");
|
||||
__iter__ = pk_StrName__map("__iter__");
|
||||
__next__ = pk_StrName__map("__next__");
|
||||
__neg__ = pk_StrName__map("__neg__");
|
||||
// logical operators
|
||||
__eq__ = pk_StrName__map("__eq__");
|
||||
__ne__ = pk_StrName__map("__ne__");
|
||||
__lt__ = pk_StrName__map("__lt__");
|
||||
__le__ = pk_StrName__map("__le__");
|
||||
__gt__ = pk_StrName__map("__gt__");
|
||||
__ge__ = pk_StrName__map("__ge__");
|
||||
__contains__ = pk_StrName__map("__contains__");
|
||||
// binary operators
|
||||
__add__ = pk_StrName__map("__add__");
|
||||
__radd__ = pk_StrName__map("__radd__");
|
||||
__sub__ = pk_StrName__map("__sub__");
|
||||
__rsub__ = pk_StrName__map("__rsub__");
|
||||
__mul__ = pk_StrName__map("__mul__");
|
||||
__rmul__ = pk_StrName__map("__rmul__");
|
||||
__truediv__ = pk_StrName__map("__truediv__");
|
||||
__rtruediv__ = pk_StrName__map("__rtruediv__");
|
||||
__floordiv__ = pk_StrName__map("__floordiv__");
|
||||
__rfloordiv__ = pk_StrName__map("__rfloordiv__");
|
||||
__mod__ = pk_StrName__map("__mod__");
|
||||
__rmod__ = pk_StrName__map("__rmod__");
|
||||
__pow__ = pk_StrName__map("__pow__");
|
||||
__rpow__ = pk_StrName__map("__rpow__");
|
||||
__matmul__ = pk_StrName__map("__matmul__");
|
||||
__lshift__ = pk_StrName__map("__lshift__");
|
||||
__rshift__ = pk_StrName__map("__rshift__");
|
||||
__and__ = pk_StrName__map("__and__");
|
||||
__or__ = pk_StrName__map("__or__");
|
||||
__xor__ = pk_StrName__map("__xor__");
|
||||
__invert__ = pk_StrName__map("__invert__");
|
||||
// indexer
|
||||
__getitem__ = pk_StrName__map("__getitem__");
|
||||
__setitem__ = pk_StrName__map("__setitem__");
|
||||
__delitem__ = pk_StrName__map("__delitem__");
|
||||
|
||||
// specials
|
||||
__new__ = pk_StrName__map("__new__");
|
||||
__init__ = pk_StrName__map("__init__");
|
||||
__call__ = pk_StrName__map("__call__");
|
||||
__divmod__ = pk_StrName__map("__divmod__");
|
||||
__enter__ = pk_StrName__map("__enter__");
|
||||
__exit__ = pk_StrName__map("__exit__");
|
||||
__name__ = pk_StrName__map("__name__");
|
||||
__all__ = pk_StrName__map("__all__");
|
||||
__package__ = pk_StrName__map("__package__");
|
||||
__path__ = pk_StrName__map("__path__");
|
||||
__class__ = pk_StrName__map("__class__");
|
||||
__missing__ = pk_StrName__map("__missing__");
|
||||
#define MAGIC_METHOD(x) x = pk_StrName__map(#x);
|
||||
#include "pocketpy/xmacros/magics.h"
|
||||
#undef MAGIC_METHOD
|
||||
|
||||
// print all names
|
||||
for(int i = 0; i < _interned.count; i++) {
|
||||
printf("%d: %s\n", i+1, c11__getitem(char*, &_r_interned, i));
|
||||
printf("%d: %s\n", i + 1, c11__getitem(char*, &_r_interned, i));
|
||||
}
|
||||
|
||||
pk_id_add = pk_StrName__map("add");
|
||||
@ -133,62 +80,10 @@ c11_string pk_StrName__rmap2(uint16_t index) {
|
||||
return (c11_string){p, strlen(p)};
|
||||
}
|
||||
|
||||
// unary operators
|
||||
uint16_t __repr__;
|
||||
uint16_t __str__;
|
||||
uint16_t __hash__;
|
||||
uint16_t __len__;
|
||||
uint16_t __iter__;
|
||||
uint16_t __next__;
|
||||
uint16_t __neg__;
|
||||
// logical operators
|
||||
uint16_t __eq__;
|
||||
uint16_t __ne__;
|
||||
uint16_t __lt__;
|
||||
uint16_t __le__;
|
||||
uint16_t __gt__;
|
||||
uint16_t __ge__;
|
||||
uint16_t __contains__;
|
||||
// binary operators
|
||||
uint16_t __add__;
|
||||
uint16_t __radd__;
|
||||
uint16_t __sub__;
|
||||
uint16_t __rsub__;
|
||||
uint16_t __mul__;
|
||||
uint16_t __rmul__;
|
||||
uint16_t __truediv__;
|
||||
uint16_t __rtruediv__;
|
||||
uint16_t __floordiv__;
|
||||
uint16_t __rfloordiv__;
|
||||
uint16_t __mod__;
|
||||
uint16_t __rmod__;
|
||||
uint16_t __pow__;
|
||||
uint16_t __rpow__;
|
||||
uint16_t __matmul__;
|
||||
uint16_t __lshift__;
|
||||
uint16_t __rshift__;
|
||||
uint16_t __and__;
|
||||
uint16_t __or__;
|
||||
uint16_t __xor__;
|
||||
uint16_t __invert__;
|
||||
// indexer
|
||||
uint16_t __getitem__;
|
||||
uint16_t __setitem__;
|
||||
uint16_t __delitem__;
|
||||
|
||||
// specials
|
||||
uint16_t __new__;
|
||||
uint16_t __init__;
|
||||
uint16_t __call__;
|
||||
uint16_t __divmod__;
|
||||
uint16_t __enter__;
|
||||
uint16_t __exit__;
|
||||
uint16_t __name__;
|
||||
uint16_t __all__;
|
||||
uint16_t __package__;
|
||||
uint16_t __path__;
|
||||
uint16_t __class__;
|
||||
uint16_t __missing__;
|
||||
///////////////////////////////////
|
||||
#define MAGIC_METHOD(x) uint16_t x;
|
||||
#include "pocketpy/xmacros/magics.h"
|
||||
#undef MAGIC_METHOD
|
||||
|
||||
uint16_t pk_id_add;
|
||||
uint16_t pk_id_set;
|
||||
|
Loading…
x
Reference in New Issue
Block a user