mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-27 06:50:18 +00:00
59 lines
1.8 KiB
C
59 lines
1.8 KiB
C
// #include "pocketpy/compiler/expr.h"
|
|
// #include "pocketpy/common/memorypool.h"
|
|
|
|
// static bool default_false(const pk_Expr*) { return false; }
|
|
// static int default_zero(const pk_Expr*) { return 0; }
|
|
// static void default_dtor(pk_Expr*) {}
|
|
|
|
// void pk_ExprVt__ctor(pk_ExprVt* vt){
|
|
// vt->dtor = default_dtor;
|
|
// vt->is_literal = default_false;
|
|
// vt->is_json_object = default_false;
|
|
// vt->is_attrib = default_false;
|
|
// vt->is_subscr = default_false;
|
|
// vt->is_compare = default_false;
|
|
// vt->star_level = default_zero;
|
|
// vt->is_tuple = default_false;
|
|
// vt->is_name = default_false;
|
|
// vt->emit_ = NULL; // must be set
|
|
// vt->emit_del = NULL;
|
|
// vt->emit_store = NULL;
|
|
// vt->emit_inplace = NULL;
|
|
// vt->emit_store_inplace = NULL;
|
|
// }
|
|
|
|
// void pk_Expr__emit_(pk_Expr* self, pk_CodeEmitContext* ctx){
|
|
// assert(self->vt->emit_);
|
|
// self->vt->emit_(self, ctx);
|
|
// }
|
|
|
|
// bool pk_Expr__emit_del(pk_Expr* self, pk_CodeEmitContext* ctx){
|
|
// if(!self->vt->emit_del) return false;
|
|
// return self->vt->emit_del(self, ctx);
|
|
// }
|
|
|
|
// bool pk_Expr__emit_store(pk_Expr* self, pk_CodeEmitContext* ctx){
|
|
// if(!self->vt->emit_store) return false;
|
|
// return self->vt->emit_store(self, ctx);
|
|
// }
|
|
|
|
// void pk_Expr__emit_inplace(pk_Expr* self, pk_CodeEmitContext* ctx){
|
|
// if(!self->vt->emit_inplace){
|
|
// pk_Expr__emit_(self, ctx);
|
|
// return;
|
|
// }
|
|
// self->vt->emit_inplace(self, ctx);
|
|
// }
|
|
|
|
// bool pk_Expr__emit_store_inplace(pk_Expr* self, pk_CodeEmitContext* ctx){
|
|
// if(!self->vt->emit_store_inplace){
|
|
// return pk_Expr__emit_store(self, ctx);
|
|
// }
|
|
// return self->vt->emit_store_inplace(self, ctx);
|
|
// }
|
|
|
|
// void pk_Expr__delete(pk_Expr* self){
|
|
// if(!self) return;
|
|
// self->vt->dtor(self);
|
|
// PoolExpr_dealloc(self);
|
|
// }
|