mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-20 09:43:03 +00:00
diagnostics: document the change of format
* doc/bison.texiL Adjust output. Also, Graphviz has no uppercsae V. * NEWS: Explain the format change.
This commit is contained in:
26
NEWS
26
NEWS
@@ -4,10 +4,32 @@ GNU Bison NEWS
|
|||||||
|
|
||||||
** Changes
|
** Changes
|
||||||
|
|
||||||
In conformance with the recommendations of the GraphViz team, if %require
|
*** Graphviz output
|
||||||
|
|
||||||
|
In conformance with the recommendations of the Graphviz team, if %require
|
||||||
"3.4" (or better) is specified, the option --graph generates a *.gv file
|
"3.4" (or better) is specified, the option --graph generates a *.gv file
|
||||||
by default, instead of *.dot.
|
by default, instead of *.dot.
|
||||||
|
|
||||||
|
*** Diagnostics overhaul
|
||||||
|
|
||||||
|
Column numbers were wrong with multibyte characters, which would also
|
||||||
|
result in skewed diagnostics with carets. Beside, because we were
|
||||||
|
indenting the quoted source with a single space, lines with tab characters
|
||||||
|
were incorrectly underlined.
|
||||||
|
|
||||||
|
To address these issues, and to be clearer, Bison now issues diagnostics
|
||||||
|
as GCC9 does. For instance it used to display (there's a tab before the
|
||||||
|
opening brace):
|
||||||
|
|
||||||
|
foo.y:3.37-38: error: $2 of ‘expr’ has no declared type
|
||||||
|
expr: expr '+' "number" { $$ = $1 + $2; }
|
||||||
|
^~
|
||||||
|
It now reports
|
||||||
|
|
||||||
|
foo.y:3.37-38: error: $2 of ‘expr’ has no declared type
|
||||||
|
3 | expr: expr '+' "number" { $$ = $1 + $2; }
|
||||||
|
| ^~
|
||||||
|
|
||||||
** New features
|
** New features
|
||||||
|
|
||||||
*** Colored diagnostics
|
*** Colored diagnostics
|
||||||
@@ -22,7 +44,7 @@ GNU Bison NEWS
|
|||||||
|
|
||||||
for instance
|
for instance
|
||||||
|
|
||||||
https://alpha.gnu.org/gnu/gettext/libtextstyle-0.7.tar.gz
|
https://alpha.gnu.org/gnu/gettext/libtextstyle-0.8.tar.gz
|
||||||
|
|
||||||
The option --color supports the following arguments:
|
The option --color supports the following arguments:
|
||||||
- always, yes: Enable colors.
|
- always, yes: Enable colors.
|
||||||
|
|||||||
@@ -4291,13 +4291,13 @@ Bison}):
|
|||||||
$ @kbd{bison -Wmidrule-value mid.y}
|
$ @kbd{bison -Wmidrule-value mid.y}
|
||||||
@group
|
@group
|
||||||
mid.y:2.6-13: warning: unset value: $$
|
mid.y:2.6-13: warning: unset value: $$
|
||||||
exp: @{ a(); @} "b" @{ $$ = c(); @} @{ d(); @} "e" @{ f = $1; @};
|
2 | exp: @{ a(); @} "b" @{ $$ = c(); @} @{ d(); @} "e" @{ f = $1; @};
|
||||||
^~~~~~~~
|
| ^~~~~~~~
|
||||||
@end group
|
@end group
|
||||||
@group
|
@group
|
||||||
mid.y:2.19-31: warning: unused value: $3
|
mid.y:2.19-31: warning: unused value: $3
|
||||||
exp: @{ a(); @} "b" @{ $$ = c(); @} @{ d(); @} "e" @{ f = $1; @};
|
2 | exp: @{ a(); @} "b" @{ $$ = c(); @} @{ d(); @} "e" @{ f = $1; @};
|
||||||
^~~~~~~~~~~~~
|
| ^~~~~~~~~~~~~
|
||||||
@end group
|
@end group
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@@ -4803,7 +4803,7 @@ longer generated.
|
|||||||
@item @code{"3.4"} (or better)
|
@item @code{"3.4"} (or better)
|
||||||
To comply with the
|
To comply with the
|
||||||
@uref{https://marc.info/?l=graphviz-devel&m=129418103126092, recommendations
|
@uref{https://marc.info/?l=graphviz-devel&m=129418103126092, recommendations
|
||||||
of the GraphViz team}, use the @code{.gv} extension instead of @code{.dot}
|
of the Graphviz team}, use the @code{.gv} extension instead of @code{.dot}
|
||||||
for the name of the generated DOT file. @xref{Graphviz}.
|
for the name of the generated DOT file. @xref{Graphviz}.
|
||||||
@end table
|
@end table
|
||||||
|
|
||||||
@@ -9346,8 +9346,8 @@ useless: STR;
|
|||||||
calc.y: warning: 1 nonterminal useless in grammar [-Wother]
|
calc.y: warning: 1 nonterminal useless in grammar [-Wother]
|
||||||
calc.y: warning: 1 rule useless in grammar [-Wother]
|
calc.y: warning: 1 rule useless in grammar [-Wother]
|
||||||
calc.y:19.1-7: warning: nonterminal useless in grammar: useless [-Wother]
|
calc.y:19.1-7: warning: nonterminal useless in grammar: useless [-Wother]
|
||||||
useless: STR;
|
19 | useless: STR;
|
||||||
^~~~~~~
|
| ^~~~~~~
|
||||||
calc.y: warning: 7 shift/reduce conflicts [-Wconflicts-sr]
|
calc.y: warning: 7 shift/reduce conflicts [-Wconflicts-sr]
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@@ -10301,14 +10301,14 @@ exp:;
|
|||||||
@group
|
@group
|
||||||
$ @kbd{bison -u foo.y}
|
$ @kbd{bison -u foo.y}
|
||||||
foo.y:1.1-14: warning: deprecated directive, use '%define parse.error verbose' [-Wdeprecated]
|
foo.y:1.1-14: warning: deprecated directive, use '%define parse.error verbose' [-Wdeprecated]
|
||||||
%error-verbose
|
1 | %error-verbose
|
||||||
^~~~~~~~~~~~~~
|
| ^~~~~~~~~~~~~~
|
||||||
foo.y:2.1-27: error: %define variable 'parse.error' redefined
|
foo.y:2.1-27: error: %define variable 'parse.error' redefined
|
||||||
%define parse.error verbose
|
2 | %define parse.error verbose
|
||||||
^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
foo.y:1.1-14: previous definition
|
foo.y:1.1-14: previous definition
|
||||||
%error-verbose
|
1 | %error-verbose
|
||||||
^~~~~~~~~~~~~~
|
| ^~~~~~~~~~~~~~
|
||||||
bison: file 'foo.y' was updated (backup: 'foo.y~')
|
bison: file 'foo.y' was updated (backup: 'foo.y~')
|
||||||
@end group
|
@end group
|
||||||
@group
|
@group
|
||||||
@@ -10423,18 +10423,18 @@ Bison reports:
|
|||||||
@example
|
@example
|
||||||
@group
|
@group
|
||||||
warning: useless precedence and associativity for "="
|
warning: useless precedence and associativity for "="
|
||||||
%nonassoc "="
|
| %nonassoc "="
|
||||||
^~~
|
| ^~~
|
||||||
@end group
|
@end group
|
||||||
@group
|
@group
|
||||||
warning: useless associativity for "*", use %precedence
|
warning: useless associativity for "*", use %precedence
|
||||||
%left "*"
|
| %left "*"
|
||||||
^~~
|
| ^~~
|
||||||
@end group
|
@end group
|
||||||
@group
|
@group
|
||||||
warning: useless precedence for "("
|
warning: useless precedence for "("
|
||||||
%precedence "("
|
| %precedence "("
|
||||||
^~~
|
| ^~~
|
||||||
@end group
|
@end group
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@@ -10522,28 +10522,28 @@ When invoked with @option{-fcaret} (or nothing), Bison will report:
|
|||||||
@example
|
@example
|
||||||
@group
|
@group
|
||||||
in.y:3.20-23: error: ambiguous reference: '$exp'
|
in.y:3.20-23: error: ambiguous reference: '$exp'
|
||||||
exp: exp '+' exp @{ $exp = $1 + $2; @};
|
3 | exp: exp '+' exp @{ $exp = $1 + $2; @};
|
||||||
^~~~
|
| ^~~~
|
||||||
@end group
|
@end group
|
||||||
@group
|
@group
|
||||||
in.y:3.1-3: refers to: $exp at $$
|
in.y:3.1-3: refers to: $exp at $$
|
||||||
exp: exp '+' exp @{ $exp = $1 + $2; @};
|
3 | exp: exp '+' exp @{ $exp = $1 + $2; @};
|
||||||
^~~
|
| ^~~
|
||||||
@end group
|
@end group
|
||||||
@group
|
@group
|
||||||
in.y:3.6-8: refers to: $exp at $1
|
in.y:3.6-8: refers to: $exp at $1
|
||||||
exp: exp '+' exp @{ $exp = $1 + $2; @};
|
3 | exp: exp '+' exp @{ $exp = $1 + $2; @};
|
||||||
^~~
|
| ^~~
|
||||||
@end group
|
@end group
|
||||||
@group
|
@group
|
||||||
in.y:3.14-16: refers to: $exp at $3
|
in.y:3.14-16: refers to: $exp at $3
|
||||||
exp: exp '+' exp @{ $exp = $1 + $2; @};
|
3 | exp: exp '+' exp @{ $exp = $1 + $2; @};
|
||||||
^~~
|
| ^~~
|
||||||
@end group
|
@end group
|
||||||
@group
|
@group
|
||||||
in.y:3.32-33: error: $2 of 'exp' has no declared type
|
in.y:3.32-33: error: $2 of 'exp' has no declared type
|
||||||
exp: exp '+' exp @{ $exp = $1 + $2; @};
|
3 | exp: exp '+' exp @{ $exp = $1 + $2; @};
|
||||||
^~
|
| ^~
|
||||||
@end group
|
@end group
|
||||||
@end example
|
@end example
|
||||||
|
|
||||||
@@ -10580,11 +10580,11 @@ exp:;
|
|||||||
@group
|
@group
|
||||||
$ @kbd{bison -ffixit foo.y}
|
$ @kbd{bison -ffixit foo.y}
|
||||||
foo.y:2.1-24: error: %define variable 'api.prefix' redefined
|
foo.y:2.1-24: error: %define variable 'api.prefix' redefined
|
||||||
%define api.prefix @{bar@}
|
2 | %define api.prefix @{bar@}
|
||||||
^~~~~~~~~~~~~~~~~~~~~~~~
|
| ^~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
foo.y:1.1-24: previous definition
|
foo.y:1.1-24: previous definition
|
||||||
%define api.prefix @{foo@}
|
1 | %define api.prefix @{foo@}
|
||||||
^~~~~~~~~~~~~~~~~~~~~~~~
|
| ^~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
fix-it:"foo.y":@{2:1-2:25@}:""
|
fix-it:"foo.y":@{2:1-2:25@}:""
|
||||||
foo.y: warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
|
foo.y: warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
|
||||||
@end group
|
@end group
|
||||||
@@ -10604,11 +10604,11 @@ exp:;
|
|||||||
@group
|
@group
|
||||||
$ @kbd{bison foo.y}
|
$ @kbd{bison foo.y}
|
||||||
foo.y:1.1-14: warning: deprecated directive, use '%define parse.error verbose' [-Wdeprecated]
|
foo.y:1.1-14: warning: deprecated directive, use '%define parse.error verbose' [-Wdeprecated]
|
||||||
%error-verbose
|
1 | %error-verbose
|
||||||
^~~~~~~~~~~~~~
|
| ^~~~~~~~~~~~~~
|
||||||
foo.y:2.1-18: warning: deprecated directive, use '%define api.prefix @{foo@}' [-Wdeprecated]
|
foo.y:2.1-18: warning: deprecated directive, use '%define api.prefix @{foo@}' [-Wdeprecated]
|
||||||
%name-prefix "foo"
|
2 | %name-prefix "foo"
|
||||||
^~~~~~~~~~~~~~~~~~
|
| ^~~~~~~~~~~~~~~~~~
|
||||||
foo.y: warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
|
foo.y: warning: fix-its can be applied. Rerun with option '--update'. [-Wother]
|
||||||
@end group
|
@end group
|
||||||
@end example
|
@end example
|
||||||
@@ -14411,7 +14411,7 @@ London, Department of Computer Science, TR-00-12 (December 2000).
|
|||||||
@c LocalWords: Johnstone Shamsa Sadaf Hussain Tomita TR uref YYMAXDEPTH inline
|
@c LocalWords: Johnstone Shamsa Sadaf Hussain Tomita TR uref YYMAXDEPTH inline
|
||||||
@c LocalWords: YYINITDEPTH stmts ref initdcl maybeasm notype Lookahead yyoutput
|
@c LocalWords: YYINITDEPTH stmts ref initdcl maybeasm notype Lookahead yyoutput
|
||||||
@c LocalWords: hexflag STR exdent itemset asis DYYDEBUG YYFPRINTF args Autoconf
|
@c LocalWords: hexflag STR exdent itemset asis DYYDEBUG YYFPRINTF args Autoconf
|
||||||
@c LocalWords: ypp yxx itemx tex leaderfill Troubleshouting sqrt GraphViz
|
@c LocalWords: ypp yxx itemx tex leaderfill Troubleshouting sqrt Graphviz
|
||||||
@c LocalWords: hbox hss hfill tt ly yyin fopen fclose ofirst gcc ll lookahead
|
@c LocalWords: hbox hss hfill tt ly yyin fopen fclose ofirst gcc ll lookahead
|
||||||
@c LocalWords: nbar yytext fst snd osplit ntwo strdup AST Troublereporting th
|
@c LocalWords: nbar yytext fst snd osplit ntwo strdup AST Troublereporting th
|
||||||
@c LocalWords: YYSTACK DVI fdl printindex IELR nondeterministic nonterminals ps
|
@c LocalWords: YYSTACK DVI fdl printindex IELR nondeterministic nonterminals ps
|
||||||
@@ -14425,7 +14425,7 @@ London, Department of Computer Science, TR-00-12 (December 2000).
|
|||||||
@c LocalWords: YYENABLE bindtextdomain Makefile DEFS CPPFLAGS DBISON DeRemer
|
@c LocalWords: YYENABLE bindtextdomain Makefile DEFS CPPFLAGS DBISON DeRemer
|
||||||
@c LocalWords: autoreconf Pennello multisets nondeterminism Generalised baz ACM
|
@c LocalWords: autoreconf Pennello multisets nondeterminism Generalised baz ACM
|
||||||
@c LocalWords: redeclare automata Dparse localedir datadir XSLT midrule Wno
|
@c LocalWords: redeclare automata Dparse localedir datadir XSLT midrule Wno
|
||||||
@c LocalWords: Graphviz multitable headitem hh basename Doxygen fno filename
|
@c LocalWords: multitable headitem hh basename Doxygen fno filename
|
||||||
@c LocalWords: doxygen ival sval deftypemethod deallocate pos deftypemethodx
|
@c LocalWords: doxygen ival sval deftypemethod deallocate pos deftypemethodx
|
||||||
@c LocalWords: Ctor defcv defcvx arg accessors arithmetics CPP ifndef CALCXX
|
@c LocalWords: Ctor defcv defcvx arg accessors arithmetics CPP ifndef CALCXX
|
||||||
@c LocalWords: lexer's calcxx bool LPAREN RPAREN deallocation cerrno climits
|
@c LocalWords: lexer's calcxx bool LPAREN RPAREN deallocation cerrno climits
|
||||||
|
|||||||
Reference in New Issue
Block a user