mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
doc: document carets
* NEWS: Announce it. * doc/bison.texi (Bison Options): Here.
This commit is contained in:
13
NEWS
13
NEWS
@@ -7,6 +7,19 @@ GNU Bison NEWS
|
|||||||
The introduction of this feature, in 2.4, was four years ago. The --language
|
The introduction of this feature, in 2.4, was four years ago. The --language
|
||||||
option and the %language directive are no longer experimental.
|
option and the %language directive are no longer experimental.
|
||||||
|
|
||||||
|
** New format for error reports: carets
|
||||||
|
|
||||||
|
Caret errors have been added to Bison, for example (taken from the
|
||||||
|
documentation):
|
||||||
|
|
||||||
|
input.y:3.20-23: error: ambiguous reference: '$exp'
|
||||||
|
exp: exp '+' exp { $exp = $1 + $2; };
|
||||||
|
^^^^
|
||||||
|
|
||||||
|
The default behaviour for now is still not to display these unless explictly
|
||||||
|
asked with -fall of -fcaret. However, in a later release, it will be made the
|
||||||
|
default behavior (but may still be deactivated with -fno-caret).
|
||||||
|
|
||||||
** New value for %define variable: api.pure full
|
** New value for %define variable: api.pure full
|
||||||
|
|
||||||
The %define variable api.pure requests a pure (reentrant) parser. However,
|
The %define variable api.pure requests a pure (reentrant) parser. However,
|
||||||
|
|||||||
@@ -9239,6 +9239,56 @@ Treat warnings as errors.
|
|||||||
A category can be turned off by prefixing its name with @samp{no-}. For
|
A category can be turned off by prefixing its name with @samp{no-}. For
|
||||||
instance, @option{-Wno-yacc} will hide the warnings about
|
instance, @option{-Wno-yacc} will hide the warnings about
|
||||||
POSIX Yacc incompatibilities.
|
POSIX Yacc incompatibilities.
|
||||||
|
|
||||||
|
@item -f [@var{feature}]
|
||||||
|
@itemx --feature[=@var{feature}]
|
||||||
|
Activate miscellaneous @var{feature}. @var{feature} can be one of:
|
||||||
|
@table @code
|
||||||
|
@item caret
|
||||||
|
@itemx diagnostics-show-caret
|
||||||
|
Show caret errors, in a manner similar to GCC's
|
||||||
|
@option{-fdiagnostics-show-caret}, or Clang's @option{-fcaret-diagnotics}. The
|
||||||
|
location provided with the message is used to quote the corresponding line of
|
||||||
|
the source file, underlining the important part of it with carets (^). Here is
|
||||||
|
an example, using the following file @file{input.y}:
|
||||||
|
|
||||||
|
@example
|
||||||
|
%type <ival> exp
|
||||||
|
%%
|
||||||
|
exp: exp '+' exp @{ $exp = $1 + $2; @};
|
||||||
|
@end example
|
||||||
|
|
||||||
|
When invoked with @option{-fcaret}, Bison will report:
|
||||||
|
|
||||||
|
@example
|
||||||
|
@group
|
||||||
|
input.y:3.20-23: error: ambiguous reference: '$exp'
|
||||||
|
exp: exp '+' exp @{ $exp = $1 + $2; @};
|
||||||
|
^^^^
|
||||||
|
@end group
|
||||||
|
@group
|
||||||
|
input.y:3.1-3: refers to: $exp at $$
|
||||||
|
exp: exp '+' exp @{ $exp = $1 + $2; @};
|
||||||
|
^^^
|
||||||
|
@end group
|
||||||
|
@group
|
||||||
|
input.y:3.6-8: refers to: $exp at $1
|
||||||
|
exp: exp '+' exp @{ $exp = $1 + $2; @};
|
||||||
|
^^^
|
||||||
|
@end group
|
||||||
|
@group
|
||||||
|
input.y:3.14-16: refers to: $exp at $3
|
||||||
|
exp: exp '+' exp @{ $exp = $1 + $2; @};
|
||||||
|
^^^
|
||||||
|
@end group
|
||||||
|
@group
|
||||||
|
input.y:3.32-33: error: $2 of 'exp' has no declared type
|
||||||
|
exp: exp '+' exp @{ $exp = $1 + $2; @};
|
||||||
|
^^
|
||||||
|
@end group
|
||||||
|
@end example
|
||||||
|
|
||||||
|
@end table
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@noindent
|
@noindent
|
||||||
|
|||||||
Reference in New Issue
Block a user