adding experimental changes for compiler enhancement
This commit is contained in:
46
lib/hcl.h
46
lib/hcl.h
@ -1091,25 +1091,35 @@ typedef struct hcl_compiler_t hcl_compiler_t;
|
||||
|
||||
#define HCL_ERRMSG_CAPA (2048)
|
||||
|
||||
typedef struct hcl_code_container_t hcl_code_container_t;
|
||||
struct hcl_code_container_t
|
||||
typedef struct hcl_clv_t hcl_clv_t;
|
||||
struct hcl_clv_t /* literal value in compiler */
|
||||
{
|
||||
|
||||
int type; /* int, string, byte string, character, etc */
|
||||
hcl_oow_t size;
|
||||
/* data is placed here */
|
||||
};
|
||||
|
||||
typedef struct hcl_ccl_t hcl_ccl_t;
|
||||
struct hcl_ccl_t /* code and literal in compiler */
|
||||
{
|
||||
struct
|
||||
{
|
||||
hcl_oop_byte_t arr; /* byte code array - not part of object memory */
|
||||
hcl_uint8_t* ptr;
|
||||
hcl_oow_t capa;
|
||||
hcl_oow_t len;
|
||||
} bc;
|
||||
|
||||
struct
|
||||
{
|
||||
hcl_oop_oop_t arr; /* literal array - not part of object memory */
|
||||
hcl_clv_t* ptr;
|
||||
hcl_oow_t capa;
|
||||
hcl_oow_t len;
|
||||
} lit;
|
||||
|
||||
hcl_code_container_t* _par;
|
||||
hcl_oow_t pindex;
|
||||
};
|
||||
|
||||
|
||||
struct hcl_t
|
||||
{
|
||||
hcl_oow_t _instsize;
|
||||
@ -1260,8 +1270,28 @@ struct hcl_t
|
||||
} xbuf; /* buffer to support sprintf */
|
||||
} sprintf;
|
||||
|
||||
hcl_code_container_t* ccstk; /* byte-code container stack */
|
||||
hcl_code_container_t code; /* byte-code structure generated by compilers */
|
||||
struct
|
||||
{
|
||||
hcl_ccl_t* ptr;
|
||||
hcl_oow_t capa;
|
||||
hcl_oow_t len;
|
||||
hcl_oow_t index;
|
||||
} ccl;
|
||||
|
||||
struct
|
||||
{
|
||||
struct
|
||||
{
|
||||
hcl_oop_byte_t arr; /* byte code array - not part of object memory */
|
||||
hcl_oow_t len;
|
||||
} bc;
|
||||
|
||||
struct
|
||||
{
|
||||
hcl_oop_oop_t arr; /* literal array - not part of object memory */
|
||||
hcl_oow_t len;
|
||||
} lit;
|
||||
} code;
|
||||
|
||||
/* == PRINTER == */
|
||||
struct
|
||||
|
Reference in New Issue
Block a user