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': <t3> != <t2>
+ foo.y:4.13-27: previous declaration
+
+ It is now:
+
+ foo.y:5.10-25: result type clash on merge function 'merge': <t3> != <t2>
+ foo.y:4.13-27: previous declaration
+
* Noteworthy changes in release 2.6.2 (2012-08-03) [stable]
** Bug fixes
* 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
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"));
}
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.
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);
}
/*--------------------------------------------------.
{
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;
}
{
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;
}
{
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;
}
{
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;
}
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
AT_BISON_CHECK([input.y], [1], [],
[[input.y:4.13-29: %destructor redeclaration for <field1>
-input.y:1.13-29: previous declaration
+input.y:1.13-29: previous declaration
input.y:4.13-29: %destructor redeclaration for <field1>
-input.y:4.13-29: previous declaration
+input.y:4.13-29: previous declaration
input.y:5.10-24: %printer redeclaration for <field2>
-input.y:2.10-24: previous declaration
+input.y:2.10-24: previous declaration
input.y:5.10-24: %printer redeclaration for <field2>
-input.y:5.10-24: previous declaration
+input.y:5.10-24: previous declaration
input.y:11.13-29: %destructor redeclaration for <field1>
-input.y:4.13-29: previous declaration
+input.y:4.13-29: previous declaration
input.y:11.13-29: %destructor redeclaration for <field2>
-input.y:1.13-29: previous declaration
+input.y:1.13-29: previous declaration
input.y:12.10-24: %printer redeclaration for <field1>
-input.y:2.10-24: previous declaration
+input.y:2.10-24: previous declaration
input.y:12.10-24: %printer redeclaration for <field2>
-input.y:5.10-24: previous declaration
+input.y:5.10-24: previous declaration
]])
AT_CLEANUP
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
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
]])