#ifdef GDBARG
argc = 2; argv[1] = GDBARG;
#endif
// mnem_init(argv[0]);
while (argc >= 2 && *argv[1] == '-') {
if (argc >= 2 && strcmp (argv[1], "-h") == 0) {
memprintf("usage: i2c [-h] [-d -q -m -f] basename\noptions:\n");
memprintf(" -h help (this message)\n");
memprintf(" -d debug\n");
memprintf(" -q quiet (i.e. C code only)\n");
memprintf(" -m mangle names for safety\n");
memprintf(" -f use imp-style for loops\n");
exit(0);
}
if (argc >= 2 && strcmp (argv[1], "-d") == 0) {
debug_input = TRUE;
argc -= 1;
argv += 1;
}
if (argc >= 2 && strcmp (argv[1], "-q") == 0) {
opt_c_only = TRUE;
argc -= 1;
argv += 1;
}
if (argc >= 2 && strcmp (argv[1], "-m") == 0) {
opt_safenames = TRUE;
argc -= 1;
argv += 1;
}
if (argc >= 2 && strcmp (argv[1], "-f") == 0) {
opt_safeforloop = TRUE;
argc -= 1;
argv += 1;
}
}
if (argc != 2) {
fprintf(stderr, "syntax: i2c [-h] [-d -q -m -f] basename\n");
exit (1);
}
imp_dirname = malloc(strlen(argv[1])+2); /* heap lossage */
sprintf(imp_dirname, "%s#", argv[1]);
cur_impfile = fopen("/dev/stdout", "w");
if ((mkdir(imp_dirname, 0777) < 0) && (errno != 17 /* don't care if it exists already */)) {
fprintf(stderr, "i2c: cannot create work directory %s - %s",
imp_dirname, strerror(errno));
exit(errno);
}
sprintf(icode_filename, "%s.icode", argv[1]);
icode_file = fopen (icode_filename, "rb");
if (icode_file == NULL) {
fprintf(stderr, "i2c: cannot open '%s' - %s\n",
icode_filename, strerror (errno));
exit (2);
}
sprintf(source_filename, "%s.i", argv[1]);
source_file = fopen (source_filename, "r");
for (d = 0; d < 255; d++) {
cond[d] = "*ERROR*";
rcond[d] = "*ERROR*";
}
for (d = 0; d < MAX_LINENOS; d++) {
lineno[d] = 0;
// linetype[d] = 0;
}
cond['<'] = "<";
cond['('] = "<=";
cond['='] = "==";
cond['#'] = "!=";
cond['>'] = ">";
cond[')'] = ">=";
rcond['<'] = ">=";
rcond['('] = ">";
rcond['='] = "!=";
rcond['#'] = "==";
rcond['>'] = "<=";
rcond[')'] = "<";
good_cop();