/* IELR main implementation.
- Copyright (C) 2009 Free Software Foundation, Inc.
+ Copyright (C) 2009-2013 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
#include "state.h"
#include "symtab.h"
-/** Records the value of the \%define variable "lr.type". */
+/** Records the value of the \%define variable lr.type. */
typedef enum { LR_TYPE__LALR, LR_TYPE__IELR, LR_TYPE__CANONICAL_LR } LrType;
/**
(*annotation_listsp)[i] = NULL;
annotation_counts[i] = 0;
}
- for (i = 0; i < nstates; ++i)
- AnnotationList__compute_from_inadequacies (states[i], follow_kernel_items,
- always_follows, predecessors,
- item_lookahead_sets,
- *inadequacy_listsp,
- *annotation_listsp,
- annotation_counts,
- &max_contributions,
- annotations_obstackp);
+ {
+ InadequacyListNodeCount inadequacy_list_node_count = 0;
+ for (i = 0; i < nstates; ++i)
+ AnnotationList__compute_from_inadequacies (
+ states[i], follow_kernel_items, always_follows, predecessors,
+ item_lookahead_sets, *inadequacy_listsp, *annotation_listsp,
+ annotation_counts, &max_contributions, annotations_obstackp,
+ &inadequacy_list_node_count);
+ }
*max_annotationsp = 0;
for (i = 0; i < nstates; ++i)
{
if (!bitset_empty_p (lookaheads[i]))
break;
}
- // bitset_equal_p uses the size of the first argument, so
- // lookaheads[i] must be the second argument.
+ /* bitset_equal_p uses the size of the first argument,
+ so lookaheads[i] must be the second argument. */
else if (!bitset_equal_p ((*this_isocorep)->lookaheads[i],
lookaheads[i]))
break;
/* Examine user options. */
{
char *type = muscle_percent_define_get ("lr.type");
- if (0 == strcmp (type, "lalr"))
+ if (STREQ (type, "lalr"))
lr_type = LR_TYPE__LALR;
- else if (0 == strcmp (type, "ielr"))
+ else if (STREQ (type, "ielr"))
lr_type = LR_TYPE__IELR;
- else if (0 == strcmp (type, "canonical-lr"))
+ else if (STREQ (type, "canonical-lr"))
lr_type = LR_TYPE__CANONICAL_LR;
else
aver (false);
free (to_state);
if (lr_type == LR_TYPE__CANONICAL_LR)
{
- // Reduction lookaheads are computed in ielr_split_states above but are
- // timed as part of phase 4.
+ /* Reduction lookaheads are computed in ielr_split_states above
+ but are timed as part of phase 4. */
set_goto_map ();
}
else