#ifndef APIMAGIC_DRIVER_IMPL_H #define APIMAGIC_DRIVER_IMPL_H #include #include #include #include #include "argv/argv.h" #ifndef AMGC_TAB_WIDTH #define AMGC_TAB_WIDTH 8 #endif extern int apimagic_main(int, char **, char **); extern const struct argv_option amgc_default_options[]; enum app_tags { TAG_HELP, TAG_VERSION, TAG_PRINT_ENUMS, TAG_LIST_ENUMS, TAG_PRINT_TYPEDEFS, TAG_PRINT_STRUCTS, TAG_PRINT_UNIONS, TAG_LANG_STD, }; struct amgc_driver_ctx_impl { struct amgc_common_ctx cctx; struct amgc_driver_ctx ctx; struct amgc_action * actions; struct compilation_env_t ccenv; int fdtmpin; }; struct amgc_unit_ctx_impl { const char * path; struct amgc_input map; struct amgc_common_ctx cctx; struct amgc_unit_ctx uctx; struct amgc_unit_meta meta; struct amgc_unit_entities * entities; struct compilation_unit_t ccunit; }; #endif