@@ -418,14 +418,7 @@ ielr_item_has_lookahead (state *s, symbol_number lhs, size_t item,
418418 /* If the LHS symbol of this item isn't known (because this is a
419419 top-level invocation), go get it. */
420420 if (!lhs )
421- {
422- int i ;
423- for (i = s -> items [item ];
424- !item_number_is_rule_number (ritem [i ]);
425- ++ i )
426- continue ;
427- lhs = rules [item_number_as_rule_number (ritem [i ])].lhs -> number ;
428- }
421+ lhs = item_rule (& ritem [s -> items [item ]])-> lhs -> number ;
429422 /* If this kernel item is next to the beginning of the RHS, then
430423 check all predecessors' goto follows for the LHS. */
431424 if (item_number_is_rule_number (ritem [s -> items [item ] - 2 ]))
@@ -633,17 +626,10 @@ ielr_compute_lookaheads (bitsetv follow_kernel_items, bitsetv always_follows,
633626 && !bitset_empty_p (lookahead_filter [t_item ]))
634627 {
635628 if (item_number_is_rule_number (ritem [t -> items [t_item ] - 2 ]))
636- {
637- int rule_item ;
638- for (rule_item = t -> items [t_item ];
639- !item_number_is_rule_number (ritem [rule_item ]);
640- ++ rule_item )
641- ;
642- ielr_compute_goto_follow_set (
643- follow_kernel_items , always_follows , s ,
644- rules [item_number_as_rule_number (ritem [rule_item ])].lhs ,
645- lookaheads [t_item ]);
646- }
629+ ielr_compute_goto_follow_set (
630+ follow_kernel_items , always_follows , s ,
631+ item_rule (& ritem [t -> items [t_item ]])-> lhs ,
632+ lookaheads [t_item ]);
647633 else if (s -> lookaheads )
648634 {
649635 /* We don't have to start the s item search at the beginning
0 commit comments