| |
| |
| |
| |
| |
| |
| #include <stdio.h> |
| |
| #include <cparser/ast/entity_t.h> |
| #include <cparser/ast/type_t.h> |
| |
| #include <apimagic/apimagic.h> |
| #include "apimagic_driver_impl.h" |
| |
| static int output_typedefs( |
| const struct amgc_driver_ctx * dctx, |
| const struct amgc_unit_ctx * uctx, |
| int subset, |
| const struct amgc_layout * layout) |
| { |
| struct amgc_entity * aentity; |
| |
| for (aentity=uctx->entities->typedefs; aentity->entity; aentity++) |
| if (aentity->reftype->kind == subset) |
| if (amgc_output_typedef(dctx,uctx,aentity,layout) < 0) |
| return -1; |
| return 0; |
| } |
| |
| int amgc_output_unit_entities( |
| const struct amgc_driver_ctx * dctx, |
| const struct amgc_unit_ctx * uctx, |
| int kind, |
| int subset, |
| const struct amgc_layout * layout) |
| { |
| switch (kind) { |
| case ENTITY_ENUM: |
| return amgc_output_unit_enums(dctx,uctx,layout); |
| |
| case ENTITY_TYPEDEF: |
| return output_typedefs(dctx,uctx,subset,layout); |
| |
| case ENTITY_STRUCT: |
| return amgc_output_unit_structs(dctx,uctx,layout); |
| |
| case ENTITY_UNION: |
| return amgc_output_unit_unions(dctx,uctx,layout); |
| } |
| |
| return -1; |
| } |