X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/da2a7671e11663b9ad941aa3e1f3014d6ad950cb..a0af42fce6362cb02ac91613779a0afb6dc18357:/src/tables.c diff --git a/src/tables.c b/src/tables.c index ba2c7a0e..f88180e2 100644 --- a/src/tables.c +++ b/src/tables.c @@ -1,7 +1,7 @@ /* Output the generated parsing program for Bison. - Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002, 2003, 2004 - Free Software Foundation, Inc. + Copyright (C) 1984, 1986, 1989, 1992, 2000, 2001, 2002, 2003, 2004, + 2005 Free Software Foundation, Inc. This file is part of Bison, the GNU Compiler Compiler. @@ -17,10 +17,10 @@ You should have received a copy of the GNU General Public License along with Bison; see the file COPYING. If not, write to the Free - Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA - 02111-1307, USA. */ - + Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA + 02110-1301, USA. */ +#include #include "system.h" #include @@ -42,13 +42,15 @@ Of course vector_number_t ought to be wide enough to contain state_number and symbol_number. */ -typedef short int vector_number; +typedef int vector_number; +#if 0 /* Not currently used. */ static inline vector_number state_number_to_vector_number (state_number s) { return s; } +#endif static inline vector_number symbol_number_to_vector_number (symbol_number sym) @@ -84,7 +86,7 @@ int nvectors; static base_number **froms; static base_number **tos; static unsigned int **conflict_tos; -static short int *tally; +static int *tally; static base_number *width; @@ -94,8 +96,8 @@ static base_number *width; 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 int action_number; -#define ACTION_NUMBER_MINIMUM SHRT_MIN +typedef int action_number; +#define ACTION_NUMBER_MINIMUM INT_MIN static action_number *actrow; @@ -171,7 +173,7 @@ table_grow (int desired) /*-------------------------------------------------------------------. | For GLR parsers, for each conflicted token in S, as indicated | -| by non-zero entries in CONFLROW, create a list of possible | +| by non-zero entries in CONFLROW, create a list of possible | | reductions that are alternatives to the shift or reduction | | currently recorded for that token in S. Store the alternative | | reductions followed by a 0 in CONFLICT_LIST, updating | @@ -516,14 +518,14 @@ save_column (symbol_number sym, state_number default_state) `-------------------------------------------------------------*/ static state_number -default_goto (symbol_number sym, short int state_count[]) +default_goto (symbol_number sym, size_t state_count[]) { state_number s; goto_number i; goto_number m = goto_map[sym - ntokens]; goto_number n = goto_map[sym - ntokens + 1]; state_number default_state = -1; - int max = 0; + size_t max = 0; if (m == n) return -1; @@ -558,7 +560,7 @@ static void goto_actions (void) { symbol_number i; - short int *state_count = xnmalloc (nstates, sizeof *state_count); + size_t *state_count = xnmalloc (nstates, sizeof *state_count); yydefgoto = xnmalloc (nvars, sizeof *yydefgoto); /* For a given nterm I, STATE_COUNT[S] is the number of times there @@ -808,9 +810,8 @@ tables_generate (void) /* This is a poor way to make sure the sizes are properly correlated. In particular the signedness is not taken into account. But it's not useless. */ - verify (sizes_are_properly_correlated, - (sizeof nstates <= sizeof nvectors - && sizeof nvars <= sizeof nvectors)); + verify (sizeof nstates <= sizeof nvectors + && sizeof nvars <= sizeof nvectors); nvectors = state_number_as_int (nstates) + nvars;