version 1.4, 2001/09/08 00:12:40 |
version 1.5, 2002/07/04 02:38:58 |
|
|
names[i] = ""; |
names[i] = ""; |
|
|
if ((fp = fopen("ytab.h", "r")) == NULL) { |
if ((fp = fopen("ytab.h", "r")) == NULL) { |
fprintf(stderr, "maketab can't open ytab.h!\n"); |
fprintf(stderr, "maketab: can't open ytab.h!\n"); |
exit(1); |
exit(1); |
} |
} |
printf("static char *printname[%d] = {\n", SIZE); |
printf("static char *printname[%d] = {\n", SIZE); |
i = 0; |
i = 0; |
while (fgets(buf, sizeof buf, fp) != NULL) { |
while (fgets(buf, sizeof buf, fp) != NULL) { |
n = sscanf(buf, "%1c %s %s %d", &c, def, name, &tok); |
n = sscanf(buf, "%1c %s %s %d", &c, def, name, &tok); |
if (c != '#' || (n != 4 && strcmp(def,"define") != 0)) /* not a valid #define */ |
if (c != '#' || (n != 4 && strcmp(def,"define") != 0)) |
continue; |
continue; /* not a valid #define */ |
if (tok < FIRSTTOKEN || tok > LASTTOKEN) { |
if (tok < FIRSTTOKEN || tok > LASTTOKEN) { |
fprintf(stderr, "maketab funny token %d %s ignored\n", tok, buf); |
fprintf(stderr, "maketab: funny token %d %s ignored\n", |
|
tok, buf); |
continue; |
continue; |
} |
} |
names[tok-FIRSTTOKEN] = (char *) malloc(strlen(name)+1); |
names[tok-FIRSTTOKEN] = (char *) strdup(name); |
strcpy(names[tok-FIRSTTOKEN], name); |
if (names[tok-FIRSTTOKEN] == NULL) { |
|
fprintf(stderr, "maketab: out of memory\n"); |
|
exit(1); |
|
} |
printf("\t(char *) \"%s\",\t/* %d */\n", name, tok); |
printf("\t(char *) \"%s\",\t/* %d */\n", name, tok); |
i++; |
i++; |
} |
} |