#include "driver/firm_opt.h"
#include "driver/firm_cmdline.h"
#include "adt/error.h"
-#include "write_fluffy.h"
-#include "write_caml.h"
+#include "wrappergen/write_fluffy.h"
+#include "wrappergen/write_caml.h"
+#include "wrappergen/write_jna.h"
#include "revision.h"
#include "warning.h"
#include "mangle.h"
LexTest,
PrintAst,
PrintFluffy,
- PrintCaml
+ PrintCaml,
+ PrintJna
} compile_mode_t;
static void usage(const char *argv0)
static void print_cparser_version(void) {
printf("cparser (%s) using libFirm (%u.%u",
- cparser_REVISION, firm_get_version_major(),
- firm_get_version_minor());
+ cparser_REVISION, ir_get_version_major(),
+ ir_get_version_minor());
- const char *revision = firm_get_version_revision();
+ const char *revision = ir_get_version_revision();
if (revision[0] != 0) {
putchar(' ');
fputs(revision, stdout);
}
- const char *build = firm_get_version_build();
+ const char *build = ir_get_version_build();
if (build[0] != 0) {
putchar(' ');
fputs(build, stdout);
strstart(orig_opt, "align-jumps=") ||
strstart(orig_opt, "align-functions=")) {
fprintf(stderr, "ignoring gcc option '-f%s'\n", orig_opt);
+ } else if (strstart(orig_opt, "input-charset=")) {
+ char const* const encoding = strchr(orig_opt, '=') + 1;
+ select_input_encoding(encoding);
} else if (streq(orig_opt, "verbose-asm")) {
/* ignore: we always print verbose assembler */
} else {
mode = PrintFluffy;
} else if (streq(option, "print-caml")) {
mode = PrintCaml;
+ } else if (streq(option, "print-jna")) {
+ mode = PrintJna;
} else if (streq(option, "version")) {
print_cparser_version();
exit(EXIT_SUCCESS);
case PrintAst:
case PrintFluffy:
case PrintCaml:
+ case PrintJna:
case LexTest:
case PreprocessOnly:
case ParseOnly:
} else if (mode == PrintCaml) {
write_caml_decls(out, unit);
continue;
+ } else if (mode == PrintJna) {
+ write_jna_decls(out, unit);
+ continue;
}
translation_unit_to_firm(unit);