/[bison]/bison/src/conflicts.c
ViewVC logotype

Diff of /bison/src/conflicts.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.86 by akim, Sun Jun 30 17:30:46 2002 UTC revision 1.87 by akim, Sun Jun 30 17:33:37 2002 UTC
# Line 139  log_resolution (rule_t *rule, int token, Line 139  log_resolution (rule_t *rule, int token,
139  static void  static void
140  flush_shift (state_t *state, int token)  flush_shift (state_t *state, int token)
141  {  {
142    shifts_t *shiftp = state->shifts;    transitions_t *transitions = state->shifts;
143    int i;    int i;
144    
145    bitset_reset (lookaheadset, token);    bitset_reset (lookaheadset, token);
146    for (i = 0; i < shiftp->nshifts; i++)    for (i = 0; i < transitions->num; i++)
147      if (!SHIFT_IS_DISABLED (shiftp, i) && SHIFT_SYMBOL (shiftp, i) == token)      if (!TRANSITION_IS_DISABLED (transitions, i) && TRANSITION_SYMBOL (transitions, i) == token)
148        SHIFT_DISABLE (shiftp, i);        TRANSITION_DISABLE (transitions, i);
149  }  }
150    
151    
# Line 249  static void Line 249  static void
249  set_conflicts (state_t *state)  set_conflicts (state_t *state)
250  {  {
251    int i;    int i;
252    shifts_t *shiftp;    transitions_t *transitions;
253    
254    if (state->consistent)    if (state->consistent)
255      return;      return;
256    
257    bitset_zero (lookaheadset);    bitset_zero (lookaheadset);
258    
259    shiftp = state->shifts;    transitions = state->shifts;
260    for (i = 0; i < shiftp->nshifts && SHIFT_IS_SHIFT (shiftp, i); i++)    for (i = 0; i < transitions->num && TRANSITION_IS_SHIFT (transitions, i); i++)
261      if (!SHIFT_IS_DISABLED (shiftp, i))      if (!TRANSITION_IS_DISABLED (transitions, i))
262        bitset_set (lookaheadset, SHIFT_SYMBOL (shiftp, i));        bitset_set (lookaheadset, TRANSITION_SYMBOL (transitions, i));
263    
264    /* Loop over all rules which require lookahead in this state.  First    /* Loop over all rules which require lookahead in this state.  First
265       check for shift-reduce conflict, and try to resolve using       check for shift-reduce conflict, and try to resolve using
# Line 308  count_sr_conflicts (state_t *state) Line 308  count_sr_conflicts (state_t *state)
308  {  {
309    int i;    int i;
310    int src_count = 0;    int src_count = 0;
311    shifts_t *shiftp = state->shifts;    transitions_t *transitions = state->shifts;
312    
313    if (!shiftp)    if (!transitions)
314      return 0;      return 0;
315    
316    bitset_zero (lookaheadset);    bitset_zero (lookaheadset);
317    bitset_zero (shiftset);    bitset_zero (shiftset);
318    
319    for (i = 0; i < shiftp->nshifts && SHIFT_IS_SHIFT (shiftp, i); i++)    for (i = 0; i < transitions->num && TRANSITION_IS_SHIFT (transitions, i); i++)
320      if (!SHIFT_IS_DISABLED (shiftp, i))      if (!TRANSITION_IS_DISABLED (transitions, i))
321        bitset_set (shiftset, SHIFT_SYMBOL (shiftp, i));        bitset_set (shiftset, TRANSITION_SYMBOL (transitions, i));
322    
323    for (i = 0; i < state->nlookaheads; ++i)    for (i = 0; i < state->nlookaheads; ++i)
324      bitset_or (lookaheadset, lookaheadset, state->lookaheads[i]);      bitset_or (lookaheadset, lookaheadset, state->lookaheads[i]);

Legend:
Removed from v.1.86  
changed lines
  Added in v.1.87

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26