X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/51b4a04cd02d4b1b2aea65ae42a65d59bc51ab20..2f82502a6fc07c455cbbfa94e75c5febf930d1c9:/src/tables.c diff --git a/src/tables.c b/src/tables.c index 84afd1cd..e1f0c61e 100644 --- a/src/tables.c +++ b/src/tables.c @@ -82,7 +82,7 @@ static base_t *width = NULL; /* For a given state, N = ACTROW[SYMBOL]: If N = 0, stands for `run the default action'. - If N = MIN, stands for `raise a parse error'. + If N = MIN, stands for `raise a syntax error'. If N > 0, stands for `shift SYMBOL and go to n'. If N < 0, stands for `reduce -N'. */ typedef short action_t; @@ -116,7 +116,7 @@ static int conflict_list_free; static size_t table_size = 32768; base_t *table = NULL; base_t *check = NULL; -/* The value used in TABLE to denote explicit parse errors +/* The value used in TABLE to denote explicit syntax errors (%nonassoc), a negative infinite. First defaults to ACTION_MIN, but in order to keep small tables, renumbered as TABLE_ERROR, which is the smallest (non error) value minus 1. */ @@ -692,8 +692,7 @@ pack_vector (vector_number_t vector) 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; } } @@ -802,9 +801,9 @@ tables_generate (void) 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 (); @@ -816,8 +815,8 @@ tables_generate (void) for (i = 0; i < nvectors; i++) { - XFREE (froms[i]); - XFREE (tos[i]); + free (froms[i]); + free (tos[i]); XFREE (conflict_tos[i]); }