2002-11-12 Akim Demaille <akim@epita.fr>
+ * src/tables.c (tables_generate): Use free for pointers that
+ cannot be NULL, not XFREE.
+ (pack_vector): Use assert, not fatal, for bound violations.
+ * src/state.c (state_new): Likewise.
+ * src/reader.c (reader): Likewise.
+ * src/lalr.c (set_goto_map): Likewise.
+ * src/location.h (LOCATION_PRINT): If first_line is 0, just issue
+ the file name.
+
+2002-11-12 Akim Demaille <akim@epita.fr>
+
* src/scan-gram.l, src/reader.h (scanner_last_string_free):
Restore.
* src/scan-gram.l (last_string): Is global to the file, not to
int i;
for (i = sp->num - 1; i >= 0 && TRANSITION_IS_GOTO (sp, i); --i)
{
- if (ngotos == GOTO_NUMBER_MAX)
- fatal (_("too many gotos (max %d)"), GOTO_NUMBER_MAX);
-
+ assert (ngotos < GOTO_NUMBER_MAX);
ngotos++;
goto_map[TRANSITION_SYMBOL (sp, i)]++;
}
Warning: it uses quotearg's slot 3. */
# define LOCATION_PRINT(Out, Loc) \
do { \
- fprintf (stderr, "%s:", quotearg_n_style (3, escape_quoting_style, \
+ fprintf (stderr, "%s:", quotearg_n_style (3, escape_quoting_style, \
(Loc).file)); \
- if ((Loc).first_line != (Loc).last_line) \
- fprintf (Out, "%d.%d-%d.%d", \
- (Loc).first_line, (Loc).first_column, \
- (Loc).last_line, (Loc).last_column - 1); \
- else if ((Loc).first_column < (Loc).last_column - 1) \
- fprintf (Out, "%d.%d-%d", (Loc).first_line, \
- (Loc).first_column, (Loc).last_column - 1); \
- else \
- fprintf (Out, "%d.%d", (Loc).first_line, (Loc).first_column); \
+ if ((Loc).first_line) \
+ { \
+ if ((Loc).first_line != (Loc).last_line) \
+ fprintf (Out, "%d.%d-%d.%d", \
+ (Loc).first_line, (Loc).first_column, \
+ (Loc).last_line, (Loc).last_column - 1); \
+ else if ((Loc).first_column < (Loc).last_column - 1) \
+ fprintf (Out, "%d.%d-%d", (Loc).first_line, \
+ (Loc).first_column, (Loc).last_column - 1); \
+ else \
+ fprintf (Out, "%d.%d", (Loc).first_line, (Loc).first_column); \
+ } \
} while (0)
-
extern location_t empty_location;
+
#endif /* !LOCATION_H_ */
if (loc > high)
high = loc;
- if (j < BASE_MIN || BASE_MAX < j)
- fatal ("base_t too small to hold %d\n", j);
+ assert (BASE_MIN <= j && j <= BASE_MAX);
return j;
}
}
token_actions ();
goto_actions ();
- XFREE (goto_map + ntokens);
- XFREE (from_state);
- XFREE (to_state);
+ free (goto_map + ntokens);
+ free (from_state);
+ free (to_state);
order = XCALLOC (vector_number_t, nvectors);
sort_actions ();
for (i = 0; i < nvectors; i++)
{
- XFREE (froms[i]);
- XFREE (tos[i]);
+ free (froms[i]);
+ free (tos[i]);
XFREE (conflict_tos[i]);
}