%expext was not functioning at all.

* src/conflicts.c (expected_conflicts): Set to -1.
(conflict_report): Use ngettext.
(conflicts_print): Check %expect and make its violation an error.
* doc/bison.texinfo (Expect Decl): Adjust.
* configure.in (AM_GNU_GETTEXT): Ask for ngettext.
* tests/regression.at (%expect not enough, %expect right)
(%expect too much): New.
This commit is contained in:
Akim Demaille
2001-11-12 09:19:48 +00:00
parent fb28699f95
commit badfc69c26
20 changed files with 512 additions and 177 deletions

View File

@@ -84,8 +84,8 @@ INTLBISON = @INTLBISON@
INTLLIBS = @INTLLIBS@
INTLOBJS = @INTLOBJS@
INTL_LIBTOOL_SUFFIX_PREFIX = @INTL_LIBTOOL_SUFFIX_PREFIX@
LIB = @LIB@
LIBICONV = @LIBICONV@
LIBOBJS = @LIBOBJS@
MKINSTALLDIRS = @MKINSTALLDIRS@
MSGFMT = @MSGFMT@
PACKAGE = @PACKAGE@

View File

@@ -31,115 +31,115 @@ instead of in the original English.

Indirect:
bison.info-1: 1313
bison.info-2: 50689
bison.info-3: 100579
bison.info-4: 147579
bison.info-5: 197449
bison.info-2: 50690
bison.info-3: 100580
bison.info-4: 147602
bison.info-5: 197472

Tag Table:
(Indirect)
Node: Top1313
Node: Introduction8967
Node: Conditions10242
Node: Copying11706
Node: Concepts30909
Node: Language and Grammar31988
Node: Grammar in Bison37004
Node: Semantic Values38928
Node: Semantic Actions41029
Node: Locations Overview42218
Node: Bison Parser43665
Node: Stages45977
Node: Grammar Layout47260
Node: Examples48517
Node: RPN Calc49715
Node: Rpcalc Decls50689
Node: Rpcalc Rules52276
Node: Rpcalc Input54076
Node: Rpcalc Line55537
Node: Rpcalc Expr56652
Node: Rpcalc Lexer58597
Node: Rpcalc Main61169
Node: Rpcalc Error61567
Node: Rpcalc Gen62575
Node: Rpcalc Compile63724
Node: Infix Calc64599
Node: Simple Error Recovery67306
Node: Location Tracking Calc69195
Node: Ltcalc Decls69925
Node: Ltcalc Rules70834
Node: Ltcalc Lexer72895
Node: Multi-function Calc75233
Node: Mfcalc Decl76800
Node: Mfcalc Rules78823
Node: Mfcalc Symtab80203
Node: Exercises86576
Node: Grammar File87082
Node: Grammar Outline87930
Node: C Declarations88664
Node: Bison Declarations89244
Node: Grammar Rules89656
Node: C Code90116
Node: Symbols91046
Node: Rules96127
Node: Recursion97766
Node: Semantics99485
Node: Value Type100579
Node: Multiple Types101251
Node: Actions102268
Node: Action Types105053
Node: Mid-Rule Actions106356
Node: Locations111926
Node: Location Type112574
Node: Actions and Locations113132
Node: Location Default Action115288
Node: Declarations116751
Node: Token Decl118070
Node: Precedence Decl120083
Node: Union Decl121634
Node: Type Decl122478
Node: Expect Decl123384
Node: Start Decl124930
Node: Pure Decl125308
Node: Decl Summary126985
Node: Multiple Parsers133113
Node: Interface134607
Node: Parser Function135479
Node: Lexical136314
Node: Calling Convention137720
Node: Token Values140491
Node: Token Positions141640
Node: Pure Calling142525
Node: Error Reporting145457
Node: Action Features147579
Node: Algorithm150874
Node: Look-Ahead153167
Node: Shift/Reduce155299
Node: Precedence158211
Node: Why Precedence158862
Node: Using Precedence160727
Node: Precedence Examples161695
Node: How Precedence162396
Node: Contextual Precedence163545
Node: Parser States165336
Node: Reduce/Reduce166579
Node: Mystery Conflicts170140
Node: Stack Overflow173526
Node: Error Recovery174899
Node: Context Dependency180035
Node: Semantic Tokens180883
Node: Lexical Tie-ins183900
Node: Tie-in Recovery185448
Node: Debugging187620
Node: Invocation190921
Node: Bison Options192173
Node: Environment Variables195723
Node: Option Cross Key196571
Node: VMS Invocation197449
Node: Table of Symbols198233
Node: Glossary206201
Node: Copying This Manual212505
Node: GNU Free Documentation License212714
Node: Index232579
Node: Introduction8968
Node: Conditions10243
Node: Copying11707
Node: Concepts30910
Node: Language and Grammar31989
Node: Grammar in Bison37005
Node: Semantic Values38929
Node: Semantic Actions41030
Node: Locations Overview42219
Node: Bison Parser43666
Node: Stages45978
Node: Grammar Layout47261
Node: Examples48518
Node: RPN Calc49716
Node: Rpcalc Decls50690
Node: Rpcalc Rules52277
Node: Rpcalc Input54077
Node: Rpcalc Line55538
Node: Rpcalc Expr56653
Node: Rpcalc Lexer58598
Node: Rpcalc Main61170
Node: Rpcalc Error61568
Node: Rpcalc Gen62576
Node: Rpcalc Compile63725
Node: Infix Calc64600
Node: Simple Error Recovery67307
Node: Location Tracking Calc69196
Node: Ltcalc Decls69926
Node: Ltcalc Rules70835
Node: Ltcalc Lexer72896
Node: Multi-function Calc75234
Node: Mfcalc Decl76801
Node: Mfcalc Rules78824
Node: Mfcalc Symtab80204
Node: Exercises86577
Node: Grammar File87083
Node: Grammar Outline87931
Node: C Declarations88665
Node: Bison Declarations89245
Node: Grammar Rules89657
Node: C Code90117
Node: Symbols91047
Node: Rules96128
Node: Recursion97767
Node: Semantics99486
Node: Value Type100580
Node: Multiple Types101252
Node: Actions102269
Node: Action Types105054
Node: Mid-Rule Actions106357
Node: Locations111927
Node: Location Type112575
Node: Actions and Locations113133
Node: Location Default Action115289
Node: Declarations116752
Node: Token Decl118071
Node: Precedence Decl120084
Node: Union Decl121635
Node: Type Decl122479
Node: Expect Decl123385
Node: Start Decl124953
Node: Pure Decl125331
Node: Decl Summary127008
Node: Multiple Parsers133136
Node: Interface134630
Node: Parser Function135502
Node: Lexical136337
Node: Calling Convention137743
Node: Token Values140514
Node: Token Positions141663
Node: Pure Calling142548
Node: Error Reporting145480
Node: Action Features147602
Node: Algorithm150897
Node: Look-Ahead153190
Node: Shift/Reduce155322
Node: Precedence158234
Node: Why Precedence158885
Node: Using Precedence160750
Node: Precedence Examples161718
Node: How Precedence162419
Node: Contextual Precedence163568
Node: Parser States165359
Node: Reduce/Reduce166602
Node: Mystery Conflicts170163
Node: Stack Overflow173549
Node: Error Recovery174922
Node: Context Dependency180058
Node: Semantic Tokens180906
Node: Lexical Tie-ins183923
Node: Tie-in Recovery185471
Node: Debugging187643
Node: Invocation190944
Node: Bison Options192196
Node: Environment Variables195746
Node: Option Cross Key196594
Node: VMS Invocation197472
Node: Table of Symbols198256
Node: Glossary206224
Node: Copying This Manual212528
Node: GNU Free Documentation License212737
Node: Index232602

End Tag Table

View File

@@ -34,7 +34,7 @@ File: bison.info, Node: Top, Next: Introduction, Up: (dir)
Bison
*****
This manual documents version 1.30b of Bison, updated 5 November
This manual documents version 1.30b of Bison, updated 12 November
2001.
* Menu:

View File

@@ -623,19 +623,20 @@ Suppressing Conflict Warnings
Bison normally warns if there are any conflicts in the grammar
(*note Shift/Reduce Conflicts: Shift/Reduce.), 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.
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. The usual warning is given if there are either more or fewer
conflicts, or if there are any reduce/reduce conflicts.
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
conflicts.
In general, using `%expect' involves these steps:

View File

@@ -3070,11 +3070,11 @@ terminal symbol. All kinds of token declarations allow
@findex %expect
Bison normally warns if there are any conflicts in the grammar
(@pxref{Shift/Reduce, ,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
@code{%expect} declaration.
(@pxref{Shift/Reduce, ,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 @code{%expect} declaration.
The declaration looks like this:
@@ -3082,10 +3082,11 @@ The declaration looks like this:
%expect @var{n}
@end example
Here @var{n} is a decimal integer. The declaration says there should be no
warning if there are @var{n} shift/reduce conflicts and no reduce/reduce
conflicts. The usual warning is given if there are either more or fewer
conflicts, or if there are any reduce/reduce conflicts.
Here @var{n} is a decimal integer. The declaration says there should be
no warning if there are @var{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 conflicts.
In general, using @code{%expect} involves these steps:

View File

@@ -1,4 +1,4 @@
@set UPDATED 5 November 2001
@set UPDATED 12 November 2001
@set UPDATED-MONTH November 2001
@set EDITION 1.30b
@set VERSION 1.30b

View File

@@ -1,4 +1,4 @@
@set UPDATED 5 November 2001
@set UPDATED 12 November 2001
@set UPDATED-MONTH November 2001
@set EDITION 1.30b
@set VERSION 1.30b