diff options
Diffstat (limited to 'src/driver')
-rw-r--r-- | src/driver/amgc_driver_ctx.c | 9 | ||||
-rw-r--r-- | src/driver/amgc_unit_action.c | 7 |
2 files changed, 16 insertions, 0 deletions
diff --git a/src/driver/amgc_driver_ctx.c b/src/driver/amgc_driver_ctx.c index 2b33de4..1e92e74 100644 --- a/src/driver/amgc_driver_ctx.c +++ b/src/driver/amgc_driver_ctx.c @@ -8,6 +8,7 @@ #include <unistd.h> #include <fcntl.h> +#include <cparser/ast/type_t.h> #include <cparser/driver/c_driver.h> #include <cparser/driver/driver.h> #include <cparser/driver/driver_t.h> @@ -202,6 +203,14 @@ int amgc_get_driver_ctx( ctx->actions[nactions].type = AMGC_ACTION_OUTPUT; ctx->actions[nactions++].action = AMGC_LIST_ENUM; break; + + case TAG_PRINT_TYPEDEFS: + ctx->actions[nactions].type = AMGC_ACTION_OUTPUT; + ctx->actions[nactions].action = AMGC_OUTPUT_TYPEDEF; + + if (!strcmp("primary",entry->arg)) + ctx->actions[nactions++].subset = TYPE_ATOMIC; + break; } ctx->ctx.program = program; diff --git a/src/driver/amgc_unit_action.c b/src/driver/amgc_unit_action.c index 04cfb8f..0a07cb9 100644 --- a/src/driver/amgc_unit_action.c +++ b/src/driver/amgc_unit_action.c @@ -4,6 +4,8 @@ /* Released under GPLv2 and GPLv3; see COPYING.APIMAGIC. */ /**********************************************************/ +#include <cparser/ast/entity_t.h> + #include <apimagic/apimagic.h> #include "apimagic_driver_impl.h" @@ -25,6 +27,11 @@ int amgc_perform_unit_action( return -1; else return amgc_list_unit_enums(uctx,0,stdout); + + case AMGC_OUTPUT_TYPEDEF: + return amgc_output_unit_entities( + uctx,ENTITY_TYPEDEF,action->subset, + layout,fout); } return -1; |