MODE_IMPL,
MODE_HEADER,
MODE_TEST,
- MODE_ASSEMBLY
+ MODE_ASSEMBLY,
+ MODE_PARSE
} OrcMode;
OrcMode mode = MODE_IMPL;
mode = MODE_TEST;
} else if (strcmp(argv[i], "--assembly") == 0) {
mode = MODE_ASSEMBLY;
+ } else if (strcmp(argv[i], "--parse-only") == 0) {
+ mode = MODE_PARSE;
} else if (strcmp(argv[i], "--include") == 0) {
if (i+1 < argc) {
include_file = argv[i+1];
case MODE_ASSEMBLY:
output_file = "out.s";
break;
+ case MODE_PARSE:
+ output_file = NULL;
+ break;
}
}
}
if (programs == NULL) {
- printf("no programs\n");
+ if (verbose) {
+ fprintf(stderr, "no programs found\n");
+ }
exit(1);
}
+ if (verbose) {
+ fprintf(stderr, "%i program%s parsed\n",
+ n_programs, (n_programs > 1) ?"s" :"");
+ }
+
+ if (mode == MODE_PARSE) {
+ exit (0);
+ }
+
if (init_function == NULL) {
init_function = orc_parse_get_init_function (programs[0]);
}