mie: add some convenience functions for func, block, and builder
This commit is contained in:
20
mie/func.c
20
mie/func.c
@@ -80,6 +80,26 @@ struct mie_value *mie_func_generate_value_name(
|
||||
return b_unbox(struct mie_value, name, v_name);
|
||||
}
|
||||
|
||||
struct mie_block *mie_func_get_first_block(struct mie_func *func)
|
||||
{
|
||||
b_queue_entry *entry = b_queue_first(&func->f_blocks);
|
||||
if (!entry) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return (struct mie_block *)b_unbox(struct mie_value, entry, v_entry);
|
||||
}
|
||||
|
||||
struct mie_block *mie_func_get_last_block(struct mie_func *func)
|
||||
{
|
||||
b_queue_entry *entry = b_queue_last(&func->f_blocks);
|
||||
if (!entry) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
return (struct mie_block *)b_unbox(struct mie_value, entry, v_entry);
|
||||
}
|
||||
|
||||
static struct mie_type *get_type(struct mie_value *v)
|
||||
{
|
||||
struct mie_func *f = MIE_FUNC(v);
|
||||
|
||||
@@ -22,4 +22,9 @@ MIE_API struct mie_block *mie_block_create(
|
||||
struct mie_func *parent, const char *name);
|
||||
MIE_API bool mie_block_add_instr(struct mie_block *block, struct mie_instr *instr);
|
||||
|
||||
static inline bool mie_block_is_terminated(const struct mie_block *block)
|
||||
{
|
||||
return block->b_terminator != NULL;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
||||
@@ -43,6 +43,8 @@ extern struct mie_builder *mie_builder_create(
|
||||
struct mie_ctx *ctx, struct mie_module *mod);
|
||||
extern void mie_builder_destroy(struct mie_builder *builder);
|
||||
|
||||
extern struct mie_func *mie_builder_get_current_func(struct mie_builder *builder);
|
||||
|
||||
extern void mie_builder_put_record(
|
||||
struct mie_builder *builder, struct mie_const *val, const char *name);
|
||||
extern void mie_builder_put_data(struct mie_builder *builder, struct mie_data *data);
|
||||
|
||||
@@ -40,4 +40,7 @@ extern void mie_func_insert_block(
|
||||
extern struct mie_value *mie_func_generate_value_name(
|
||||
struct mie_func *func, struct mie_value *val, const char *hint);
|
||||
|
||||
extern struct mie_block *mie_func_get_first_block(struct mie_func *func);
|
||||
extern struct mie_block *mie_func_get_last_block(struct mie_func *func);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user