mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-14 06:43:03 +00:00
Use "%no-default-prec" instead of "%default-prec 0".
This commit is contained in:
@@ -3684,8 +3684,7 @@ Using it in a way that would be associative is a syntax error.
|
||||
@end deffn
|
||||
|
||||
@deffn {Directive} %default-prec
|
||||
Specify whether to assign a precedence to rules lacking an
|
||||
explicit @code{%prec} modifier
|
||||
Assign a precedence to rules lacking an explicit @code{%prec} modifier
|
||||
(@pxref{Contextual Precedence, ,Context-Dependent Precedence}).
|
||||
@end deffn
|
||||
|
||||
@@ -3759,6 +3758,12 @@ and so on. @xref{Multiple Parsers, ,Multiple Parsers in the Same
|
||||
Program}.
|
||||
@end deffn
|
||||
|
||||
@deffn {Directive} %no-default-prec
|
||||
Do not assign a precedence to rules lacking an explicit @code{%prec}
|
||||
modifier (@pxref{Contextual Precedence, ,Context-Dependent
|
||||
Precedence}).
|
||||
@end deffn
|
||||
|
||||
@deffn {Directive} %no-parser
|
||||
Do not include any C code in the parser file; generate tables only. The
|
||||
parser file contains just @code{#define} directives and static variable
|
||||
@@ -4862,20 +4867,20 @@ minus, Bison silently assumes that minus has its usual precedence.
|
||||
This kind of problem can be tricky to debug, since one typically
|
||||
discovers the mistake only by testing the code.
|
||||
|
||||
The @code{%default-prec 0;} declaration makes it easier to discover
|
||||
The @code{%no-default-prec;} declaration makes it easier to discover
|
||||
this kind of problem systematically. It causes rules that lack a
|
||||
@code{%prec} modifier to have no precedence, even if the last terminal
|
||||
symbol mentioned in their components has a declared precedence.
|
||||
|
||||
If @code{%default-prec 0;} is in effect, you must specify @code{%prec}
|
||||
If @code{%no-default-prec;} is in effect, you must specify @code{%prec}
|
||||
for all rules that participate in precedence conflict resolution.
|
||||
Then you will see any shift/reduce conflict until you tell Bison how
|
||||
to resolve it, either by changing your grammar or by adding an
|
||||
explicit precedence. This will probably add declarations to the
|
||||
grammar, but it helps to protect against incorrect rule precedences.
|
||||
|
||||
The effect of @code{%default-prec 0;} can be reversed by giving
|
||||
@code{%default-prec 1;}, which is the default.
|
||||
The effect of @code{%no-default-prec;} can be reversed by giving
|
||||
@code{%default-prec;}, which is the default.
|
||||
|
||||
@node Parser States
|
||||
@section Parser States
|
||||
@@ -6808,10 +6813,10 @@ parsing. @xref{Parser Function, ,The Parser Function @code{yyparse}}.
|
||||
Equip the parser for debugging. @xref{Decl Summary}.
|
||||
@end deffn
|
||||
|
||||
@deffn {Directive} %default-prec @var{state};
|
||||
Bison declaration to specify whether to assign a precedence to rules
|
||||
that lack an explicit @samp{%prec} modifier. @xref{Contextual
|
||||
Precedence, ,Context-Dependent Precedence}.
|
||||
@deffn {Directive} %default-prec
|
||||
Assign a precedence to rules that lack an explicit @samp{%prec}
|
||||
modifier. @xref{Contextual Precedence, ,Context-Dependent
|
||||
Precedence}.
|
||||
@end deffn
|
||||
|
||||
@deffn {Directive} %defines
|
||||
@@ -6867,6 +6872,12 @@ function is applied to the two semantic values to get a single result.
|
||||
Bison declaration to rename the external symbols. @xref{Decl Summary}.
|
||||
@end deffn
|
||||
|
||||
@deffn {Directive} %no-default-prec
|
||||
Do not assign a precedence to rules that lack an explicit @samp{%prec}
|
||||
modifier. @xref{Contextual Precedence, ,Context-Dependent
|
||||
Precedence}.
|
||||
@end deffn
|
||||
|
||||
@deffn {Directive} %no-lines
|
||||
Bison declaration to avoid generating @code{#line} directives in the
|
||||
parser file. @xref{Decl Summary}.
|
||||
|
||||
Reference in New Issue
Block a user