From: Theophile Ranquet Date: Wed, 26 Sep 2012 09:49:19 +0000 (+0200) Subject: errors: indent "symbol redeclaration" context X-Git-Tag: v2.6.90~108 X-Git-Url: https://git.saurik.com/bison.git/commitdiff_plain/cbaea0106d2c70e45ddb5fa6d662d31c9bb3d4f8 errors: indent "symbol redeclaration" context This is the continuation of the work on the readability of errors context. For example, what used to be: input.y:5.10-24: %printer redeclaration for input.y:3.11-25: previous declaration is now: input.y:5.10-24: %printer redeclaration for input.y:3.11-25: previous declaration * NEWS: Document this change. * src/symtab.c (symbol_redeclaration, semantic_type_redeclaration, user_token_number_redeclaration, default_tagged_destructor_set, default_tagless_destructor_set, default_tagged_printer_set, default_tagless_printer_set): Use complain_at_indent to output with increased indentation level. * tests/input.at: Apply this change. Signed-off-by: Akim Demaille --- diff --git a/NEWS b/NEWS index 75a11bf0..772a2d51 100644 --- a/NEWS +++ b/NEWS @@ -14,6 +14,18 @@ GNU Bison NEWS Incorrect definitions of YY_, issued by yacc.c when no parser header is generated, are removed. +** Changes in the format of errors and exceptions output + + This used to be the format of many error reports: + + foo.y:5.10-24: result type clash on merge function 'merge': != + foo.y:4.13-27: previous declaration + + It is now: + + foo.y:5.10-25: result type clash on merge function 'merge': != + foo.y:4.13-27: previous declaration + * Noteworthy changes in release 2.6.2 (2012-08-03) [stable] ** Bug fixes @@ -32,7 +44,7 @@ GNU Bison NEWS * Noteworthy changes in release 2.6.1 (2012-07-30) [stable] - Bison no longer executes user-specified M4 code when processing a grammar. + Bison no longer executes user-specified M4 code when processing a grammar. ** Future Changes diff --git a/src/symtab.c b/src/symtab.c index 002f6e37..2e0b9201 100644 --- a/src/symtab.c +++ b/src/symtab.c @@ -150,16 +150,20 @@ static void symbol_redeclaration (symbol *s, const char *what, location first, location second) { - complain_at (second, _("%s redeclaration for %s"), what, s->tag); - complain_at (first, _("previous declaration")); + unsigned i = 0; + complain_at_indent (second, &i, _("%s redeclaration for %s"), what, s->tag); + i += SUB_INDENT; + complain_at_indent (first, &i, _("previous declaration")); } static void semantic_type_redeclaration (semantic_type *s, const char *what, location first, location second) { - complain_at (second, _("%s redeclaration for <%s>"), what, s->tag); - complain_at (first, _("previous declaration")); + unsigned i = 0; + complain_at_indent (second, &i, _("%s redeclaration for <%s>"), what, s->tag); + i += SUB_INDENT; + complain_at_indent (first, &i, _("previous declaration")); } @@ -515,6 +519,7 @@ symbol_pack_processor (void *this, void *null ATTRIBUTE_UNUSED) static void user_token_number_redeclaration (int num, symbol *first, symbol *second) { + unsigned i = 0; /* User token numbers are not assigned during the parsing, but in a second step, via a traversal of the symbol table sorted on tag. @@ -526,11 +531,12 @@ user_token_number_redeclaration (int num, symbol *first, symbol *second) first = second; second = tmp; } - complain_at (second->location, - _("user token number %d redeclaration for %s"), - num, second->tag); - complain_at (first->location, _("previous declaration for %s"), - first->tag); + complain_at_indent (second->location, &i, + _("user token number %d redeclaration for %s"), + num, second->tag); + complain_at_indent (first->location, &i, + _("previous declaration for %s"), + first->tag); } /*--------------------------------------------------. @@ -923,10 +929,12 @@ default_tagged_destructor_set (code_props const *destructor) { if (default_tagged_destructor.code) { - complain_at (destructor->location, - _("redeclaration for default tagged %%destructor")); - complain_at (default_tagged_destructor.location, - _("previous declaration")); + unsigned i = 0; + complain_at_indent (destructor->location, &i, + _("redeclaration for default tagged %%destructor")); + i += SUB_INDENT; + complain_at_indent (default_tagged_destructor.location, &i, + _("previous declaration")); } default_tagged_destructor = *destructor; } @@ -936,10 +944,12 @@ default_tagless_destructor_set (code_props const *destructor) { if (default_tagless_destructor.code) { - complain_at (destructor->location, - _("redeclaration for default tagless %%destructor")); - complain_at (default_tagless_destructor.location, - _("previous declaration")); + unsigned i = 0; + complain_at_indent (destructor->location, &i, + _("redeclaration for default tagless %%destructor")); + i += SUB_INDENT; + complain_at_indent (default_tagless_destructor.location, &i, + _("previous declaration")); } default_tagless_destructor = *destructor; } @@ -949,10 +959,12 @@ default_tagged_printer_set (code_props const *printer) { if (default_tagged_printer.code) { - complain_at (printer->location, - _("redeclaration for default tagged %%printer")); - complain_at (default_tagged_printer.location, - _("previous declaration")); + unsigned i = 0; + complain_at_indent (printer->location, &i, + _("redeclaration for default tagged %%printer")); + i += SUB_INDENT; + complain_at_indent (default_tagged_printer.location, &i, + _("previous declaration")); } default_tagged_printer = *printer; } @@ -962,10 +974,12 @@ default_tagless_printer_set (code_props const *printer) { if (default_tagless_printer.code) { - complain_at (printer->location, - _("redeclaration for default tagless %%printer")); - complain_at (default_tagless_printer.location, - _("previous declaration")); + unsigned i = 0; + complain_at_indent (printer->location, &i, + _("redeclaration for default tagless %%printer")); + i += SUB_INDENT; + complain_at_indent (default_tagless_printer.location, &i, + _("previous declaration")); } default_tagless_printer = *printer; } diff --git a/tests/input.at b/tests/input.at index ff1d3924..fc92abe0 100644 --- a/tests/input.at +++ b/tests/input.at @@ -206,29 +206,29 @@ start: ; AT_BISON_CHECK([input.y], [1], [], [[input.y:1.13-29: redeclaration for default tagged %destructor -input.y:1.13-29: previous declaration +input.y:1.13-29: previous declaration input.y:2.10-24: redeclaration for default tagged %printer -input.y:2.10-24: previous declaration +input.y:2.10-24: previous declaration input.y:4.13-29: redeclaration for default tagged %destructor -input.y:1.13-29: previous declaration +input.y:1.13-29: previous declaration input.y:5.10-24: redeclaration for default tagged %printer -input.y:2.10-24: previous declaration +input.y:2.10-24: previous declaration input.y:7.13-29: redeclaration for default tagless %destructor -input.y:7.13-29: previous declaration +input.y:7.13-29: previous declaration input.y:8.10-24: redeclaration for default tagless %printer -input.y:8.10-24: previous declaration +input.y:8.10-24: previous declaration input.y:10.13-29: redeclaration for default tagless %destructor -input.y:7.13-29: previous declaration +input.y:7.13-29: previous declaration input.y:11.10-24: redeclaration for default tagless %printer -input.y:8.10-24: previous declaration +input.y:8.10-24: previous declaration input.y:17.13-29: redeclaration for default tagged %destructor -input.y:4.13-29: previous declaration +input.y:4.13-29: previous declaration input.y:18.10-24: redeclaration for default tagged %printer -input.y:5.10-24: previous declaration +input.y:5.10-24: previous declaration input.y:20.13-29: redeclaration for default tagless %destructor -input.y:10.13-29: previous declaration +input.y:10.13-29: previous declaration input.y:21.10-24: redeclaration for default tagless %printer -input.y:11.10-24: previous declaration +input.y:11.10-24: previous declaration ]]) AT_CLEANUP @@ -257,21 +257,21 @@ start: ; AT_BISON_CHECK([input.y], [1], [], [[input.y:4.13-29: %destructor redeclaration for -input.y:1.13-29: previous declaration +input.y:1.13-29: previous declaration input.y:4.13-29: %destructor redeclaration for -input.y:4.13-29: previous declaration +input.y:4.13-29: previous declaration input.y:5.10-24: %printer redeclaration for -input.y:2.10-24: previous declaration +input.y:2.10-24: previous declaration input.y:5.10-24: %printer redeclaration for -input.y:5.10-24: previous declaration +input.y:5.10-24: previous declaration input.y:11.13-29: %destructor redeclaration for -input.y:4.13-29: previous declaration +input.y:4.13-29: previous declaration input.y:11.13-29: %destructor redeclaration for -input.y:1.13-29: previous declaration +input.y:1.13-29: previous declaration input.y:12.10-24: %printer redeclaration for -input.y:2.10-24: previous declaration +input.y:2.10-24: previous declaration input.y:12.10-24: %printer redeclaration for -input.y:5.10-24: previous declaration +input.y:5.10-24: previous declaration ]]) AT_CLEANUP @@ -369,13 +369,13 @@ exp: foo; AT_BISON_CHECK([input.y], [1], [], [[input.y:8.7-11: %type redeclaration for foo -input.y:3.7-11: previous declaration +input.y:3.7-11: previous declaration input.y:10.13-17: %destructor redeclaration for foo -input.y:5.13-17: previous declaration +input.y:5.13-17: previous declaration input.y:9.10-14: %printer redeclaration for foo -input.y:4.10-14: previous declaration +input.y:4.10-14: previous declaration input.y:11.1-5: %left redeclaration for foo -input.y:6.1-5: previous declaration +input.y:6.1-5: previous declaration ]]) AT_CLEANUP @@ -693,7 +693,7 @@ start: DECIMAL_1 HEXADECIMAL_2; AT_BISON_CHECK([redecl.y], [1], [], [[redecl.y:10.10-22: user token number 11259375 redeclaration for HEXADECIMAL_1 -redecl.y:9.8-16: previous declaration for DECIMAL_1 +redecl.y:9.8-16: previous declaration for DECIMAL_1 redecl.y:12.10-18: user token number 16702650 redeclaration for DECIMAL_2 redecl.y:11.10-22: previous declaration for HEXADECIMAL_2 ]])