X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/166366b28f579dfb991f8f6fca323847bcc1eb65..75ae8299840bbd854fa2474d38402bbb933c6511:/src/AnnotationList.h?ds=sidebyside diff --git a/src/AnnotationList.h b/src/AnnotationList.h index 02d4a2be..5abaa2e7 100644 --- a/src/AnnotationList.h +++ b/src/AnnotationList.h @@ -1,6 +1,6 @@ /* IELR's inadequacy annotation list. - 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. @@ -20,10 +20,10 @@ #ifndef ANNOTATION_LIST_H_ # define ANNOTATION_LIST_H_ -#include -#include "Sbitset.h" -#include "InadequacyList.h" -#include "state.h" +# include +# include "Sbitset.h" +# include "InadequacyList.h" +# include "state.h" typedef unsigned int AnnotationIndex; @@ -82,6 +82,15 @@ typedef struct AnnotationList * computed by \c ielr_compute_auxiliary_tables. * - The size of each of \c annotation_lists and \c annotation_counts is * \c ::nstates. + * - If no \c InadequacyList nodes are currently allocated for the + * parser tables to which \c s belongs, then it is best if + * *inadequacy_list_node_count is zero to avoid overflow. + * Otherwise, *inadequacy_list_node_count has not been + * modified by any function except + * \c AnnotationList__compute_from_inadequacies since the invocation + * of \c AnnotationList__compute_from_inadequacies that constructed + * the first of the \c InadequacyList nodes currently allocated for + * those parser tables. * \post * - inadequacy_lists[s->number] now describes all inadequacies that * manifest in \c s. @@ -97,18 +106,14 @@ typedef struct AnnotationList * \c annotations_obstackp. */ void -AnnotationList__compute_from_inadequacies (state *s, - bitsetv follow_kernel_items, - bitsetv always_follows, - state ***predecessors, - bitset **item_lookahead_sets, - InadequacyList **inadequacy_lists, - AnnotationList **annotation_lists, - AnnotationIndex *annotation_counts, - ContributionIndex - *max_contributionsp, - struct obstack - *annotations_obstackp); +AnnotationList__compute_from_inadequacies ( + state *s, bitsetv follow_kernel_items, bitsetv always_follows, + state ***predecessors, bitset **item_lookahead_sets, + InadequacyList **inadequacy_lists, AnnotationList **annotation_lists, + AnnotationIndex *annotation_counts, + ContributionIndex *max_contributionsp, + struct obstack *annotations_obstackp, + InadequacyListNodeCount *inadequacy_list_node_count); /** * \pre