From e29f0771d7a7a569f830bfe75216e1e0db3362e4 Mon Sep 17 00:00:00 2001 From: Akim Demaille Date: Tue, 19 Jun 2012 17:01:35 +0200 Subject: [PATCH] maint: formatting changes. * NEWS: Fix indentation of code snippets. Untabify. --- NEWS | 116 +++++++++++++++++++++++++++++------------------------------ 1 file changed, 58 insertions(+), 58 deletions(-) diff --git a/NEWS b/NEWS index ae8b297c..9c5d67b7 100644 --- a/NEWS +++ b/NEWS @@ -21,22 +21,22 @@ GNU Bison NEWS The generated headers are now guarded, as is already the case for C++ parsers (lalr1.cc). For intance, with --defines=foo.h: - #ifndef YY_FOO_H - # define YY_FOO_H - ... - #endif /* !YY_FOO_H */ + #ifndef YY_FOO_H + # define YY_FOO_H + ... + #endif /* !YY_FOO_H */ *** New declarations The generated header now declares yydebug and yyparse. Both honor --name-prefix=bar_, and yield - int bar_parse (void); + int bar_parse (void); rather than - #define yyparse bar_parse - int yyparse (void); + #define yyparse bar_parse + int yyparse (void); in order to facilitate the inclusion of several parser headers inside a single compilation unit. @@ -78,10 +78,10 @@ GNU Bison NEWS The header files such as "parser.hh", "location.hh", etc. used a constant name for preprocessor guards, for instance: - #ifndef BISON_LOCATION_HH - # define BISON_LOCATION_HH - ... - #endif // !BISON_LOCATION_HH + #ifndef BISON_LOCATION_HH + # define BISON_LOCATION_HH + ... + #endif // !BISON_LOCATION_HH The inclusion guard is now computed from "PREFIX/FILE-NAME", where lower case characters are converted to upper case, and series of @@ -89,10 +89,10 @@ GNU Bison NEWS With "bison -o lang++/parser.cc", "location.hh" would now include: - #ifndef YY_LANG_LOCATION_HH - # define YY_LANG_LOCATION_HH - ... - #endif // !YY_LANG_LOCATION_HH + #ifndef YY_LANG_LOCATION_HH + # define YY_LANG_LOCATION_HH + ... + #endif // !YY_LANG_LOCATION_HH *** C++ locations: @@ -323,33 +323,33 @@ GNU Bison NEWS to use it. If, for instance, your location structure has "first" and "last" members, instead of - # define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (N) \ - { \ - (Current).first = (Rhs)[1].location.first; \ - (Current).last = (Rhs)[N].location.last; \ - } \ - else \ - { \ - (Current).first = (Current).last = (Rhs)[0].location.last; \ - } \ - while (false) + # define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (N) \ + { \ + (Current).first = (Rhs)[1].location.first; \ + (Current).last = (Rhs)[N].location.last; \ + } \ + else \ + { \ + (Current).first = (Current).last = (Rhs)[0].location.last; \ + } \ + while (false) use: - # define YYLLOC_DEFAULT(Current, Rhs, N) \ - do \ - if (N) \ - { \ - (Current).first = YYRHSLOC (Rhs, 1).first; \ - (Current).last = YYRHSLOC (Rhs, N).last; \ - } \ - else \ - { \ - (Current).first = (Current).last = YYRHSLOC (Rhs, 0).last; \ - } \ - while (false) + # define YYLLOC_DEFAULT(Current, Rhs, N) \ + do \ + if (N) \ + { \ + (Current).first = YYRHSLOC (Rhs, 1).first; \ + (Current).last = YYRHSLOC (Rhs, N).last; \ + } \ + else \ + { \ + (Current).first = (Current).last = YYRHSLOC (Rhs, 0).last; \ + } \ + while (false) ** YYLLOC_DEFAULT in C++: @@ -968,26 +968,26 @@ GNU Bison NEWS if the symbols have destructors. For instance: exp: exp "?" exp ":" exp { $1 ? $1 : $3; } - | exp "+" exp - ; + | exp "+" exp + ; will trigger a warning about $$ and $5 in the first rule, and $3 in the second ($1 is copied to $$ by the default rule). This example most likely contains three errors, and could be rewritten as: exp: exp "?" exp ":" exp - { $$ = $1 ? $3 : $5; free ($1 ? $5 : $3); free ($1); } - | exp "+" exp - { $$ = $1 ? $1 : $3; if ($1) free ($3); } - ; + { $$ = $1 ? $3 : $5; free ($1 ? $5 : $3); free ($1); } + | exp "+" exp + { $$ = $1 ? $1 : $3; if ($1) free ($3); } + ; However, if the original actions were really intended, memory leaks and all, the warnings can be suppressed by letting Bison believe the values are used, e.g.: exp: exp "?" exp ":" exp { $1 ? $1 : $3; (void) ($$, $5); } - | exp "+" exp { $$ = $1; (void) $3; } - ; + | exp "+" exp { $$ = $1; (void) $3; } + ; If there are mid-rule actions, the warning is issued if no action uses it. The following triggers no warning: $1 and $3 are used. @@ -1231,16 +1231,16 @@ GNU Bison NEWS In agreement with POSIX and with other Yaccs, leaving a default action is valid when $$ is untyped, and $1 typed: - untyped: ... typed; + untyped: ... typed; but the converse remains an error: - typed: ... untyped; + typed: ... untyped; ** Values of mid-rule actions The following code: - foo: { ... } { $$ = $1; } ... + foo: { ... } { $$ = $1; } ... was incorrectly rejected: $1 is defined in the second mid-rule action, and is equal to the $$ of the first mid-rule action. @@ -1322,9 +1322,9 @@ GNU Bison NEWS ** Incorrect "Token not used" On a grammar such as - %token useless useful - %% - exp: '0' %prec useful; + %token useless useful + %% + exp: '0' %prec useful; where a token was used to set the precedence of the last rule, bison reported both "useful" and "useless" as useless tokens. @@ -1343,9 +1343,9 @@ GNU Bison NEWS the user symbol is used in the reports, the graphs, and the verbose error messages instead of "$end", which remains being the default. For instance - %token MYEOF 0 + %token MYEOF 0 or - %token MYEOF 0 "end of file" + %token MYEOF 0 "end of file" ** Semantic parser This old option, which has been broken for ages, is removed. @@ -1381,9 +1381,9 @@ GNU Bison NEWS Previous versions don't complain when there is a type clash on the default action if the rule has a mid-rule action, such as in: - %type bar - %% - bar: '0' {} '0'; + %type bar + %% + bar: '0' {} '0'; This is fixed. -- 2.47.2