(bison.info)Expect Decl

Next: Start Decl Prev: Type Decl Up: Declarations

Suppressing Conflict Warnings

   Bison normally warns if there are any conflicts in the grammar
(Note: Shift/Reduce Conflicts.), but most real grammars
have harmless shift/reduce conflicts which are resolved in a predictable
way and would be difficult to eliminate.  It is desirable to suppress
the warning about these conflicts unless the number of conflicts
changes.  You can do this with the `%expect' declaration.

   The declaration looks like this:

     %expect N

   Here N is a decimal integer.  The declaration says there should be
no warning if there are N shift/reduce conflicts and no reduce/reduce
conflicts.  An error, instead of the usual warning, is given if there
are either more or fewer conflicts, or if there are any reduce/reduce

   In general, using `%expect' involves these steps:

   * Compile your grammar without `%expect'.  Use the `-v' option to
     get a verbose list of where the conflicts occur.  Bison will also
     print the number of conflicts.

   * Check each of the conflicts to make sure that Bison's default
     resolution is what you really want.  If not, rewrite the grammar
     and go back to the beginning.

   * Add an `%expect' declaration, copying the number N from the number
     which Bison printed.

   Now Bison will stop annoying you about the conflicts you have
checked, but it will warn you again if changes in the grammar result in
additional conflicts.

automatically generated by info version 1.5

Dirfile and infopages generated Sat Dec 3 02:07:54 2005