*** bison-1.25/reader.c Sat Sep 30 19:14:37 1995 --- bison-1.25/reader.c.s-max Sat Dec 12 23:46:02 1998 *************** *** 54,59 **** --- 54,60 ---- extern char *token_buffer; extern void init_lex(); + extern char *grow_token_buffer(); extern void tabinit(); extern void output_headers(); extern void output_trailers(); *************** *** 482,489 **** for (;;) { ! if(ungetc(skip_white_space(), finput) == '%') return; token = lex(); if (token == COMMA) { --- 483,495 ---- for (;;) { ! const int tmp = ungetc(skip_white_space(), finput); ! ! if(tmp == '%') return; + if (tmp == EOF) + fatals("Nothing follows %s", token_buffer); + token = lex(); if (token == COMMA) { *************** *** 665,673 **** for (;;) { register int t; ! if(ungetc(skip_white_space(), finput) == '%') return; t = lex(); --- 671,682 ---- for (;;) { register int t; + const int tmp = ungetc(skip_white_space(), finput); ! if (tmp == '%') return; + if (tmp == EOF) + fatals("Nothing following %s", token_buffer); t = lex(); *************** *** 711,719 **** for (;;) { register int t; ! if(ungetc(skip_white_space(), finput) == '%') return; t = lex(); --- 720,731 ---- for (;;) { register int t; + const int tmp = ungetc(skip_white_space(), finput); ! if (tmp == '%') return; + if (tmp == EOF) + fatals("Nothing following %s", token_buffer); t = lex(); *************** *** 1108,1114 **** register char *cp = token_buffer; while ((c = getc(finput)) != '>' && c > 0) ! *cp++ = c; *cp = 0; type_name = token_buffer; --- 1120,1129 ---- register char *cp = token_buffer; while ((c = getc(finput)) != '>' && c > 0) ! { ! *cp++ = c; ! cp = grow_token_buffer(cp); /* Ensure room for next. */ ! } *cp = 0; type_name = token_buffer; *************** *** 1330,1336 **** register char *cp = token_buffer; while ((c = getc(finput)) != '>' && c > 0) ! *cp++ = c; *cp = 0; type_name = token_buffer; value_components_used = 1; --- 1345,1354 ---- register char *cp = token_buffer; while ((c = getc(finput)) != '>' && c > 0) ! { ! *cp++ = c; ! cp = grow_token_buffer(cp); /* Ensure room for next. */ ! } *cp = 0; type_name = token_buffer; value_components_used = 1;