diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/apimagic.c | 16 | ||||
-rw-r--r-- | src/driver/amgc_unit_action.c | 31 |
2 files changed, 32 insertions, 15 deletions
diff --git a/src/apimagic.c b/src/apimagic.c index f89df43..6d92db6 100644 --- a/src/apimagic.c +++ b/src/apimagic.c @@ -26,21 +26,7 @@ static void apimagic_perform_unit_actions(struct amgc_unit_ctx * uctx) const struct amgc_action * action; for (action=uctx->cctx->actions; action->type; action++) - switch (action->action) { - case AMGC_OUTPUT_ENUM: - if (action->symbol) - (void)0; - else - amgc_output_unit_enums(uctx,0,stdout); - break; - - case AMGC_LIST_ENUM: - if (action->symbol) - (void)0; - else - amgc_list_unit_enums(uctx,0,stdout); - break; - } + amgc_perform_unit_action(uctx,action,0,stdout); } static int apimagic_exit(struct amgc_driver_ctx * dctx, int nerrors) diff --git a/src/driver/amgc_unit_action.c b/src/driver/amgc_unit_action.c new file mode 100644 index 0000000..04cfb8f --- /dev/null +++ b/src/driver/amgc_unit_action.c @@ -0,0 +1,31 @@ +/**********************************************************/ +/* apimagic: cparser-based API normalization utility */ +/* Copyright (C) 2015--2016 Z. Gilboa */ +/* Released under GPLv2 and GPLv3; see COPYING.APIMAGIC. */ +/**********************************************************/ + +#include <apimagic/apimagic.h> +#include "apimagic_driver_impl.h" + +int amgc_perform_unit_action( + const struct amgc_unit_ctx * uctx, + const struct amgc_action * action, + const struct amgc_layout * layout, + FILE * fout) +{ + switch (action->action) { + case AMGC_OUTPUT_ENUM: + if (action->symbol) + return -1; + else + return amgc_output_unit_enums(uctx,0,stdout); + + case AMGC_LIST_ENUM: + if (action->symbol) + return -1; + else + return amgc_list_unit_enums(uctx,0,stdout); + } + + return -1; +} |