mie: builtin: add function to create mie_type_attr instances
This commit is contained in:
@@ -7,6 +7,23 @@
|
|||||||
#include <mie/parse/parser.h>
|
#include <mie/parse/parser.h>
|
||||||
#include <mie/print/printer.h>
|
#include <mie/print/printer.h>
|
||||||
|
|
||||||
|
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(
|
static enum mie_status print(
|
||||||
const struct mie_attribute *value, struct mie_printer *out)
|
const struct mie_attribute *value, struct mie_printer *out)
|
||||||
{
|
{
|
||||||
@@ -25,25 +42,11 @@ static enum mie_status print(
|
|||||||
return MIE_SUCCESS;
|
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(
|
static enum mie_status parse(
|
||||||
struct mie_parser *ctx, const struct mie_attribute **out)
|
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) {
|
if (!ty) {
|
||||||
return MIE_ERR_NO_MEMORY;
|
return MIE_ERR_NO_MEMORY;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user