use class dif for PikaObj

This commit is contained in:
lyon 2022-05-22 18:03:19 +08:00
parent 230a9da244
commit 64730bca8f

View File

@ -52,30 +52,34 @@ def_class(InstructUnit,
dcl_class(ConstPool); dcl_class(ConstPool);
def_class( def_class(ConstPool,
ConstPool, private_member(
private_member(Arg* arg_buff; uint16_t content_offset_now; uint16_t size; Arg* arg_buff;
uint16_t content_offset_now;
uint16_t size;
void* content_start; void* content_start;
void (*output_redirect_fun)(ConstPool* self, char* content); void (*output_redirect_fun)(ConstPool* self, char* content);
FILE * output_f;)); FILE * output_f;
));
dcl_class(InstructArray); dcl_class(InstructArray);
def_class(InstructArray, def_class(InstructArray,
private_member(
private_member(Arg* arg_buff; uint16_t content_offset_now; Arg* arg_buff; uint16_t content_offset_now;
uint16_t size; uint16_t size;
void* content_start; void* content_start;
void (*output_redirect_fun)(InstructArray* self, void (*output_redirect_fun)(InstructArray* self,
InstructUnit* ins_unit); InstructUnit* ins_unit);
FILE * output_f;) FILE * output_f;
));
);
dcl_class(ByteCodeFrame); dcl_class(ByteCodeFrame);
def_class(ByteCodeFrame, def_class(ByteCodeFrame,
private_member(ConstPool const_pool; InstructArray instruct_array;)); private_member(
ConstPool const_pool;
InstructArray instruct_array;
));
dcl_class(PikaObj); dcl_class(PikaObj);
def_class(PikaObj, Args* list;); def_class(PikaObj, Args* list;);
@ -86,11 +90,15 @@ typedef PikaObj VMParameters;
typedef void (*Method)(PikaObj* self, Args* args); typedef void (*Method)(PikaObj* self, Args* args);
dcl_class(MethodInfo); dcl_class(MethodInfo);
def_class(MethodInfo, def_class(MethodInfo,
private_member(char* name; char* dec; char* ptr; char* pars; private_member(
char* name;
char* dec;
char* ptr;
char* pars;
ArgType type; ArgType type;
ByteCodeFrame * bytecode_frame;)); ByteCodeFrame * bytecode_frame;
));
typedef PikaObj LibObj; typedef PikaObj LibObj;
typedef PikaObj PikaMaker; typedef PikaObj PikaMaker;