- for (i = sp->nshifts - 1; i >= 0 && SHIFT_IS_GOTO (sp, i); --i)
- {
- state2 = sp->shifts[i];
- symbol = state_table[state2].accessing_symbol;
-
- k = temp_map[symbol]++;
- from_state[k] = state1;
- to_state[k] = state2;
- }
+ if (sp->nshifts)
+ for (i = sp->nshifts - 1; i >= 0 && SHIFT_IS_GOTO (sp, i); --i)
+ {
+ state2 = sp->shifts[i];
+ symbol = state_table[state2].accessing_symbol;
+
+ k = temp_map[symbol]++;
+ from_state[k] = state1;
+ to_state[k] = state2;
+ }