diff --git a/mie/dialect/builtin/attribute/type.c b/mie/dialect/builtin/attribute/type.c index 75b2e54..2f927ca 100644 --- a/mie/dialect/builtin/attribute/type.c +++ b/mie/dialect/builtin/attribute/type.c @@ -7,6 +7,23 @@ #include #include +struct mie_attribute *mie_type_attr_create( + struct mie_ctx *ctx, const struct mie_type *ty) +{ + struct mie_type_attr *out = malloc(sizeof *out); + if (!out) { + return NULL; + } + + memset(out, 0x0, sizeof *out); + + out->ty_base.a_def + = mie_ctx_get_attribute_definition(ctx, "builtin", "type"); + out->ty_value = ty; + + return (struct mie_attribute *)out; +} + static enum mie_status print( const struct mie_attribute *value, struct mie_printer *out) { @@ -25,25 +42,11 @@ static enum mie_status print( return MIE_SUCCESS; } -static struct mie_type_attr *type_attr_create(struct mie_ctx *ctx) -{ - struct mie_type_attr *ty = malloc(sizeof *ty); - if (!ty) { - return NULL; - } - - memset(ty, 0x0, sizeof *ty); - - ty->ty_base.a_def - = mie_ctx_get_attribute_definition(ctx, "builtin", "type"); - - return ty; -} - static enum mie_status parse( struct mie_parser *ctx, const struct mie_attribute **out) { - struct mie_type_attr *ty = type_attr_create(mie_parser_get_mie_ctx(ctx)); + struct mie_type_attr *ty = (struct mie_type_attr *)mie_type_attr_create( + mie_parser_get_mie_ctx(ctx), NULL); if (!ty) { return MIE_ERR_NO_MEMORY; }