+static void print_cparser_version(void) {
+ firm_version_t ver;
+ firm_get_version(&ver);
+
+ printf("cparser (%s) using libFirm (%u.%u",
+ cparser_REVISION, ver.major, ver.minor);
+ if(ver.revision[0] != 0) {
+ putchar(' ');
+ fputs(ver.revision, stdout);
+ }
+ if(ver.build[0] != 0) {
+ putchar(' ');
+ fputs(ver.build, stdout);
+ }
+ puts(")\n");
+}
+
+static void set_be_option(const char *arg)
+{
+ int res = firm_be_option(arg);
+ (void) res;
+ assert(res);
+}
+
+static void set_option(const char *arg)
+{
+ int res = firm_option(arg);
+ (void) res;
+ assert(res);
+}
+
+static void copy_file(FILE *dest, FILE *input)
+{
+ char buf[16384];
+
+ while (!feof(input) && !ferror(dest)) {
+ size_t read = fread(buf, 1, sizeof(buf), input);
+ if(fwrite(buf, 1, read, dest) != read) {
+ perror("couldn't write output");
+ }
+ }
+}
+
+static FILE *open_file(const char *filename)
+{
+ if (strcmp(filename, "-") == 0) {
+ return stdin;
+ }
+
+ FILE *in = fopen(filename, "r");
+ if(in == NULL) {
+ fprintf(stderr, "Couldn't open '%s': %s\n", filename,
+ strerror(errno));
+ exit(1);
+ }
+
+ return in;
+}
+
+static filetype_t get_filetype_from_string(const char *string)
+{
+ if (strcmp(string, "c") == 0 || strcmp(string, "c-header") == 0)
+ return FILETYPE_C;
+ if (strcmp(string, "assembler") == 0)
+ return FILETYPE_PREPROCESSED_ASSEMBLER;
+ if (strcmp(string, "assembler-with-cpp") == 0)
+ return FILETYPE_ASSEMBLER;
+ if (strcmp(string, "none") == 0)
+ return FILETYPE_AUTODETECT;
+
+ return FILETYPE_UNKNOWN;
+}
+