#ifndef APIMAGIC_DRIVER_IMPL_H
#define APIMAGIC_DRIVER_IMPL_H
#include <stdint.h>
#include <stdio.h>
#include <sys/types.h>
#include <apimagic/apimagic.h>
#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