bison-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH 0/6] {maint} errors: output prefixing


From: Akim Demaille
Subject: Re: [PATCH 0/6] {maint} errors: output prefixing
Date: Wed, 26 Sep 2012 15:53:14 +0200

Le 26 sept. 2012 à 15:45, Theophile Ranquet a écrit :

> Theophile Ranquet (6):
>  errors: indent "result type clash" error context
>  errors: indent "symbol redeclaration" context
>  errors: indent "%define var" redefinition context
>  errors: indent "invalid value for %define" context
>  errors: prefix the output with "error: "
>  warnings: introduce -Wdeprecated in the usage info

Nice work!  Thanks.

Installed in maint, and merged in master as follows:

commit b34359cb54f52d3fb0e13bd3cde8550ba66cb80c
Merge: 37cfa11 bd52638
Author: Akim Demaille <address@hidden>
Date:   Wed Sep 26 14:35:47 2012 +0200

    Merge branch 'maint'
    
    * maint:
      warnings: introduce -Wdeprecated in the usage info
      errors: prefix the output with "error: "
      errors: indent "invalid value for %define" context
      errors: indent "%define var" redefinition context
      errors: indent "symbol redeclaration" context
      errors: indent "result type clash" error context
    
    Conflicts:
        src/complain.c
        src/muscle-tab.c
        src/reader.c
        src/symtab.c
        tests/conflicts.at
        tests/input.at
        tests/named-refs.at
        tests/output.at
        tests/skeletons.at

diff --git a/NEWS b/NEWS
index 7f0fe8b..a70c23d 100644
--- a/NEWS
+++ b/NEWS
@@ -211,6 +211,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': <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
diff --git a/THANKS b/THANKS
index 4ed4256..19ec28a 100644
--- a/THANKS
+++ b/THANKS
@@ -104,6 +104,7 @@ Shura                     address@hidden
 Stefano Lattarini         address@hidden
 Steve Murphy              address@hidden
 Sum Wu                    address@hidden
+Théophile Ranquet         address@hidden
 Thiru Ramakrishnan        address@hidden
 Tim Josling               address@hidden
 Tim Landscheidt           address@hidden
@@ -127,6 +128,7 @@ thank them!  Please, help us keeping this list up to date.
 
 Local Variables:
 mode: text
+coding: utf-8
 End:
 
 -----
diff --git a/gnulib b/gnulib
--- a/gnulib
+++ b/gnulib
@@ -1 +1 @@
-Subproject commit cb38ce7db84edb421fbaeea5abe16ebeb8ad8a5c
+Subproject commit cb38ce7db84edb421fbaeea5abe16ebeb8ad8a5c-dirty
diff --git a/src/complain.c b/src/complain.c
index d79a250..1834120 100644
--- a/src/complain.c
+++ b/src/complain.c
@@ -122,7 +122,9 @@ complains (const location *loc, warnings flags, const char 
*message,
 {
   if (flags & complaint)
     {
-      error_message (loc, complaint, NULL, message, args);
+      error_message (loc, complaint,
+                     indent_ptr && *indent_ptr ? NULL : _("error"),
+                     message, args);
       complaint_issued = true;
     }
   else if (flags & fatal)
@@ -140,13 +142,17 @@ complains (const location *loc, warnings flags, const 
char *message,
       else if (warnings_flag & Wyacc)
         {
           set_warning_issued ();
-          error_message (loc, flags, _("warning"), message, args);
+          error_message (loc, flags,
+                         indent_ptr && *indent_ptr ? NULL : _("warning"),
+                         message, args);
         }
     }
   else if (warnings_flag & flags)
     {
       set_warning_issued ();
-      error_message (loc, flags, _("warning"), message, args);
+      error_message (loc, flags,
+                     indent_ptr && *indent_ptr ? NULL : _("warning"),
+                     message, args);
     }
 }
 
@@ -179,6 +185,7 @@ void complain_at_indent (location loc, warnings flags, 
unsigned *indent,
   va_end (args);
 }
 
+
 /*--------------------------------.
 | Report a warning, and proceed.  |
 `--------------------------------*/
diff --git a/src/complain.h b/src/complain.h
index 44be293..452508e 100644
--- a/src/complain.h
+++ b/src/complain.h
@@ -48,6 +48,9 @@ extern warnings warnings_flag;
 /** Display a "[-Wyacc]" like message on stderr.  */
 void warnings_print_categories (warnings warn_flags);
 
+/* Sub-messages indent. */
+#define SUB_INDENT (4)
+
 /** Record that a warning is about to be issued, and treat it as an
     error if <tt>warnings_flag & Werror</tt>.  This is exported
     only for the sake of Yacc-compatible conflict reports in conflicts.c.
diff --git a/src/getargs.c b/src/getargs.c
index 74be410..97f061f 100644
--- a/src/getargs.c
+++ b/src/getargs.c
@@ -326,13 +326,14 @@ Warning categories include:\n\
   `yacc'            incompatibilities with POSIX Yacc\n\
   `conflicts-sr'    S/R conflicts (enabled by default)\n\
   `conflicts-rr'    R/R conflicts (enabled by default)\n\
+  `deprecated'      obsolete constructs\n\
   `other'           all other warnings (enabled by default)\n\
   `all'             all the warnings\n\
   `no-CATEGORY'     turn off warnings in CATEGORY\n\
   `none'            turn off all the warnings\n\
   `error'           treat warnings as errors\n\
-\n\
 "), stdout);
+      putc ('\n', stdout);
 
       fputs (_("\
 THINGS is a list of comma separated words that can include:\n\
diff --git a/src/muscle-tab.c b/src/muscle-tab.c
index 8e56981..4738fdf 100644
--- a/src/muscle-tab.c
+++ b/src/muscle-tab.c
@@ -439,12 +439,16 @@ muscle_percent_define_insert (char const *variable, 
location variable_loc,
       && muscle_find_const (name))
     {
       muscle_percent_define_how how_old = atoi (muscle_find_const (how_name));
+      unsigned i = 0;
       if (how_old == MUSCLE_PERCENT_DEFINE_F)
         return;
-      complain_at (variable_loc, complaint, _("%%define variable %s 
redefined"),
-                   quote (variable));
-      location loc = muscle_percent_define_get_loc (variable);
-      complain_at (loc, complaint, _("previous definition"));
+      complain_at_indent (variable_loc, complaint, &i,
+                          _("%%define variable %s redefined"),
+                          quote (variable));
+      i += SUB_INDENT;
+      complain_at_indent (muscle_percent_define_get_loc (variable),
+                          complaint, &i,
+                          _("previous definition"));
     }
 
   MUSCLE_INSERT_STRING (name, value);
@@ -600,13 +604,16 @@ muscle_percent_define_check_values (char const * const 
*values)
             }
           if (!*values)
             {
+              unsigned i = 0;
               location loc = muscle_percent_define_get_loc (*variablep);
-              complain_at (loc, complaint,
-                           _("invalid value for %%define variable %s: %s"),
-                           quote (*variablep), quote_n (1, value));
+              complain_at_indent
+                (loc, complaint, &i,
+                 _("invalid value for %%define variable %s: %s"),
+                 quote (*variablep), quote_n (1, value));
+              i += SUB_INDENT;
               for (values = variablep + 1; *values; ++values)
-                complain_at (loc, complaint, _("accepted value: %s"),
-                             quote (*values));
+                complain_at_indent (loc, complaint, &i, _("accepted value: 
%s"),
+                                    quote (*values));
             }
           else
             {
diff --git a/src/reader.c b/src/reader.c
index 52c0b13..f658e64 100644
--- a/src/reader.c
+++ b/src/reader.c
@@ -128,11 +128,16 @@ record_merge_function_type (int merger, uniqstr type, 
location declaration_loc)
   aver (merge_function != NULL && merger_find == merger);
   if (merge_function->type != NULL && !UNIQSTR_EQ (merge_function->type, type))
     {
-      complain_at (declaration_loc, complaint,
-                   _("result type clash on merge function %s: <%s> != <%s>"),
-                   quote (merge_function->name), type, merge_function->type);
-      complain_at (merge_function->type_declaration_location, complaint,
-                   _("previous declaration"));
+      unsigned indent = 0;
+      complain_at_indent (declaration_loc, complaint, &indent,
+                          _("result type clash on merge function %s: "
+                            "<%s> != <%s>"),
+                          quote (merge_function->name), type,
+                          merge_function->type);
+      indent += SUB_INDENT;
+      complain_at_indent (merge_function->type_declaration_location, complaint,
+                          &indent,
+                          _("previous declaration"));
     }
   merge_function->type = uniqstr_new (type);
   merge_function->type_declaration_location = declaration_loc;
diff --git a/src/symtab.c b/src/symtab.c
index 21c6125..916536a 100644
--- a/src/symtab.c
+++ b/src/symtab.c
@@ -193,16 +193,24 @@ static void
 symbol_redeclaration (symbol *s, const char *what, location first,
                       location second)
 {
-  complain_at (second, complaint, _("%s redeclaration for %s"), what, s->tag);
-  complain_at (first, complaint, _("previous declaration"));
+  unsigned i = 0;
+  complain_at_indent (second, complaint, &i,
+                      _("%s redeclaration for %s"), what, s->tag);
+  i += SUB_INDENT;
+  complain_at_indent (first, complaint, &i,
+                      _("previous declaration"));
 }
 
 static void
 semantic_type_redeclaration (semantic_type *s, const char *what, location 
first,
                              location second)
 {
-  complain_at (second, complaint, _("%s redeclaration for <%s>"), what, 
s->tag);
-  complain_at (first, complaint, _("previous declaration"));
+  unsigned i = 0;
+  complain_at_indent (second, complaint, &i,
+                      _("%s redeclaration for <%s>"), what, s->tag);
+  i += SUB_INDENT;
+  complain_at_indent (first, complaint, &i,
+                      _("previous declaration"));
 }
 
 
@@ -546,6 +554,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.
 
@@ -557,11 +566,12 @@ user_token_number_redeclaration (int num, symbol *first, 
symbol *second)
       first = second;
       second = tmp;
     }
-  complain_at (second->location, complaint,
-               _("user token number %d redeclaration for %s"),
-               num, second->tag);
-  complain_at (first->location, complaint, _("previous declaration for %s"),
-               first->tag);
+  complain_at_indent (second->location, complaint, &i,
+                      _("user token number %d redeclaration for %s"),
+                      num, second->tag);
+  complain_at_indent (first->location, complaint, &i,
+                      _("previous declaration for %s"),
+                      first->tag);
 }
 
 /*--------------------------------------------------.
diff --git a/tests/conflicts.at b/tests/conflicts.at
index 83ef128..b3f6709 100644
--- a/tests/conflicts.at
+++ b/tests/conflicts.at
@@ -945,7 +945,7 @@ exp: exp OP exp | NUM;
 ]])
 
 AT_BISON_CHECK([-o input.c input.y], 1, [],
-[[input.y: shift/reduce conflicts: 1 found, 0 expected
+[[input.y: error: shift/reduce conflicts: 1 found, 0 expected
 ]])
 AT_CLEANUP
 
@@ -981,7 +981,7 @@ exp: exp OP exp | NUM;
 ]])
 
 AT_BISON_CHECK([-o input.c input.y], 1, [],
-[[input.y: shift/reduce conflicts: 1 found, 2 expected
+[[input.y: error: shift/reduce conflicts: 1 found, 2 expected
 ]])
 AT_CLEANUP
 
@@ -1000,7 +1000,7 @@ a: 'a';
 ]])
 
 AT_BISON_CHECK([-o input.c input.y], 1, [],
-[[input.y: reduce/reduce conflicts: 1 found, 0 expected
+[[input.y: error: reduce/reduce conflicts: 1 found, 0 expected
 ]])
 AT_CLEANUP
 
@@ -1584,12 +1584,12 @@ for gram in sr-rr sr rr; do
           if test -z "$sr_exp_i" && test "$sr_count" -ne 0; then
             echo "warning: $sr_count shift/reduce conflicts"
           elif test "$sr_exp_i" -ne "$sr_count"; then
-            echo "shift/reduce conflicts: $sr_count found, $sr_exp_i expected"
+            echo "error: shift/reduce conflicts: $sr_count found, $sr_exp_i 
expected"
           fi
           if test -z "$rr_exp_i" && test "$rr_count" -ne 0; then
             echo "warning: $rr_count reduce/reduce conflicts"
           elif test "$rr_exp_i" -ne "$rr_count"; then
-            echo "reduce/reduce conflicts: $rr_count found, $rr_exp_i expected"
+            echo "error: reduce/reduce conflicts: $rr_count found, $rr_exp_i 
expected"
           fi
         } | sed -e "s/^/$file: /" > experr
         ]AT_BISON_CHECK([[-Wnone $file]], [[1]], [[]], [[experr]])[
diff --git a/tests/glr-regression.at b/tests/glr-regression.at
index 98ebdfa..b376c1c 100644
--- a/tests/glr-regression.at
+++ b/tests/glr-regression.at
@@ -1652,11 +1652,11 @@ main (void)
 AT_BISON_OPTION_POPDEFS
 
 AT_BISON_CHECK([[-o glr-regr18.c glr-regr18.y]], 1, [],
-[glr-regr18.y:26.18-24: result type clash on merge function 'merge': <type2> 
!= <type1>
-glr-regr18.y:25.18-24: previous declaration
-glr-regr18.y:27.13-19: result type clash on merge function 'merge': <type3> != 
<type2>
-glr-regr18.y:26.18-24: previous declaration
-])
+[[glr-regr18.y:26.18-24: error: result type clash on merge function 'merge': 
<type2> != <type1>
+glr-regr18.y:25.18-24:     previous declaration
+glr-regr18.y:27.13-19: error: result type clash on merge function 'merge': 
<type3> != <type2>
+glr-regr18.y:26.18-24:     previous declaration
+]])
 
 AT_CLEANUP
 
diff --git a/tests/input.at b/tests/input.at
index 056e578..5bb707e 100644
--- a/tests/input.at
+++ b/tests/input.at
@@ -33,8 +33,8 @@ exp: { @$ = @1 ; };
 ]])
 
 AT_BISON_CHECK([input.y], [1], [],
-[[input.y:2.13-14: integer out of range: '$1'
-input.y:3.13-14: integer out of range: '@1'
+[[input.y:2.13-14: error: integer out of range: '$1'
+input.y:3.13-14: error: integer out of range: '@1'
 ]])
 
 AT_CLEANUP
@@ -58,8 +58,8 @@ exp: foo { $$; } foo { $2; } foo
 ]])
 
 AT_BISON_CHECK([input.y], [1], [],
-[[input.y:5.12-13: $$ for the midrule at $2 of 'exp' has no declared type
-input.y:5.24-25: $2 of 'exp' has no declared type
+[[input.y:5.12-13: error: $$ for the midrule at $2 of 'exp' has no declared 
type
+input.y:5.24-25: error: $2 of 'exp' has no declared type
 input.y:5.6-32: warning: type clash on default action: <bar> != <> [-Wother]
 input.y:6.6-8: warning: type clash on default action: <bar> != <> [-Wother]
 input.y:7.5: warning: empty rule for typed nonterminal, and no action [-Wother]
@@ -200,30 +200,30 @@ start: ;
 ]])
 
 AT_BISON_CHECK([input.y], [1], [],
-[[input.y:1.13-29: %destructor redeclaration for <*>
-input.y:1.13-29: previous declaration
-input.y:2.10-24: %printer redeclaration for <*>
-input.y:2.10-24: previous declaration
-input.y:4.13-29: %destructor redeclaration for <*>
-input.y:1.13-29: previous declaration
-input.y:5.10-24: %printer redeclaration for <*>
-input.y:2.10-24: previous declaration
-input.y:7.13-29: %destructor redeclaration for <>
-input.y:7.13-29: previous declaration
-input.y:8.10-24: %printer redeclaration for <>
-input.y:8.10-24: previous declaration
-input.y:10.13-29: %destructor redeclaration for <>
-input.y:7.13-29: previous declaration
-input.y:11.10-24: %printer redeclaration for <>
-input.y:8.10-24: previous declaration
-input.y:17.13-29: %destructor redeclaration for <*>
-input.y:4.13-29: previous declaration
-input.y:18.10-24: %printer redeclaration for <*>
-input.y:5.10-24: previous declaration
-input.y:20.13-29: %destructor redeclaration for <>
-input.y:10.13-29: previous declaration
-input.y:21.10-24: %printer redeclaration for <>
-input.y:11.10-24: previous declaration
+[[input.y:1.13-29: error: %destructor redeclaration for <*>
+input.y:1.13-29:     previous declaration
+input.y:2.10-24: error: %printer redeclaration for <*>
+input.y:2.10-24:     previous declaration
+input.y:4.13-29: error: %destructor redeclaration for <*>
+input.y:1.13-29:     previous declaration
+input.y:5.10-24: error: %printer redeclaration for <*>
+input.y:2.10-24:     previous declaration
+input.y:7.13-29: error: %destructor redeclaration for <>
+input.y:7.13-29:     previous declaration
+input.y:8.10-24: error: %printer redeclaration for <>
+input.y:8.10-24:     previous declaration
+input.y:10.13-29: error: %destructor redeclaration for <>
+input.y:7.13-29:      previous declaration
+input.y:11.10-24: error: %printer redeclaration for <>
+input.y:8.10-24:      previous declaration
+input.y:17.13-29: error: %destructor redeclaration for <*>
+input.y:4.13-29:      previous declaration
+input.y:18.10-24: error: %printer redeclaration for <*>
+input.y:5.10-24:      previous declaration
+input.y:20.13-29: error: %destructor redeclaration for <>
+input.y:10.13-29:     previous declaration
+input.y:21.10-24: error: %printer redeclaration for <>
+input.y:11.10-24:     previous declaration
 ]])
 
 AT_CLEANUP
@@ -251,22 +251,22 @@ start: ;
 ]])
 
 AT_BISON_CHECK([input.y], [1], [],
-[[input.y:4.13-29: %destructor redeclaration for <field1>
-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:5.10-24: %printer redeclaration for <field2>
-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:11.13-29: %destructor redeclaration for <field1>
-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:12.10-24: %printer redeclaration for <field1>
-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:4.13-29: error: %destructor redeclaration for <field1>
+input.y:1.13-29:     previous declaration
+input.y:4.13-29: error: %destructor redeclaration for <field1>
+input.y:4.13-29:     previous declaration
+input.y:5.10-24: error: %printer redeclaration for <field2>
+input.y:2.10-24:     previous declaration
+input.y:5.10-24: error: %printer redeclaration for <field2>
+input.y:5.10-24:     previous declaration
+input.y:11.13-29: error: %destructor redeclaration for <field1>
+input.y:4.13-29:      previous declaration
+input.y:11.13-29: error: %destructor redeclaration for <field2>
+input.y:1.13-29:      previous declaration
+input.y:12.10-24: error: %printer redeclaration for <field1>
+input.y:2.10-24:      previous declaration
+input.y:12.10-24: error: %printer redeclaration for <field2>
+input.y:5.10-24:      previous declaration
 ]])
 
 AT_CLEANUP
@@ -286,7 +286,7 @@ exp: bar;
 ]])
 
 AT_BISON_CHECK([input.y], [1], [],
-[[input.y:2.16-18: symbol bar is used, but is not defined as a token and has 
no rules
+[[input.y:2.16-18: error: symbol bar is used, but is not defined as a token 
and has no rules
 input.y:1.17-19: warning: symbol baz is used, but is not defined as a token 
and has no rules [-Wother]
 input.y:1.13-15: warning: symbol foo is used, but is not defined as a token 
and has no rules [-Wother]
 input.y:3.13-15: warning: symbol qux is used, but is not defined as a token 
and has no rules [-Wother]
@@ -480,14 +480,14 @@ 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:10.13-17: %destructor redeclaration for foo
-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:11.1-5: %left redeclaration for foo
-input.y:6.1-5: previous declaration
+[[input.y:8.7-11: error: %type redeclaration for foo
+input.y:3.7-11:     previous declaration
+input.y:10.13-17: error: %destructor redeclaration for foo
+input.y:5.13-17:      previous declaration
+input.y:9.10-14: error: %printer redeclaration for foo
+input.y:4.10-14:     previous declaration
+input.y:11.1-5: error: %left redeclaration for foo
+input.y:6.1-5:      previous declaration
 ]])
 
 AT_CLEANUP
@@ -506,7 +506,7 @@ AT_SETUP([Torturing the Scanner])
 AT_BISON_OPTION_PUSHDEFS
 AT_DATA([input.y], [])
 AT_BISON_CHECK([input.y], [1], [],
-[[input.y:1.1: syntax error, unexpected end of file
+[[input.y:1.1: error: syntax error, unexpected end of file
 ]])
 
 
@@ -514,7 +514,7 @@ AT_DATA([input.y],
 [{}
 ])
 AT_BISON_CHECK([input.y], [1], [],
-[[input.y:1.1-2: syntax error, unexpected {...}
+[[input.y:1.1-2: error: syntax error, unexpected {...}
 ]])
 
 
@@ -780,9 +780,9 @@ AT_DATA_GRAMMAR([input.y],
 start: .GOOD GOOD
 ]])
 AT_BISON_CHECK([-o input.c input.y], [1], [],
-[[input.y:10.10: invalid character: '-'
-input.y:11.10-16: invalid identifier: '1NV4L1D'
-input.y:12.10: invalid character: '-'
+[[input.y:10.10: error: invalid character: '-'
+input.y:11.10-16: error: invalid identifier: '1NV4L1D'
+input.y:12.10: error: invalid character: '-'
 ]])
 
 AT_CLEANUP
@@ -804,9 +804,9 @@ 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:12.10-18: user token number 16702650 redeclaration for DECIMAL_2
+[[redecl.y:10.10-22: error: user token number 11259375 redeclaration for 
HEXADECIMAL_1
+redecl.y:9.8-16:   previous declaration for DECIMAL_1
+redecl.y:12.10-18: error: user token number 16702650 redeclaration for 
DECIMAL_2
 redecl.y:11.10-22: previous declaration for HEXADECIMAL_2
 ]])
 
@@ -819,8 +819,8 @@ start: TOO_LARGE_DEC TOO_LARGE_HEX
 ]])
 
 AT_BISON_CHECK([too-large.y], [1], [],
-[[too-large.y:9.22-42: integer out of range: '999999999999999999999'
-too-large.y:10.24-44: integer out of range: '0xFFFFFFFFFFFFFFFFFFF'
+[[too-large.y:9.22-42: error: integer out of range: '999999999999999999999'
+too-large.y:10.24-44: error: integer out of range: '0xFFFFFFFFFFFFFFFFFFF'
 ]])
 
 AT_CLEANUP
@@ -860,12 +860,12 @@ start: ;
 ]])
 
 AT_BISON_CHECK([-o input.c input.y], 1, [],
-[[input.y:1.10-2.0: missing '"' at end of line
-input.y:4.10-5.0: missing "'" at end of line
-input.y:14.11-15.0: missing "'" at end of line
-input.y:16.11-17.0: missing '"' at end of line
-input.y:19.13-20.0: missing '}' at end of file
-input.y:20.1: syntax error, unexpected end of file
+[[input.y:1.10-2.0: error: missing '"' at end of line
+input.y:4.10-5.0: error: missing "'" at end of line
+input.y:14.11-15.0: error: missing "'" at end of line
+input.y:16.11-17.0: error: missing '"' at end of line
+input.y:19.13-20.0: error: missing '}' at end of file
+input.y:20.1: error: syntax error, unexpected end of file
 ]])
 
 AT_CLEANUP
@@ -907,7 +907,7 @@ PREC: ;
 ]])
 
 AT_BISON_CHECK([input.y], [1], [],
-[[input.y:3.1-4: rule given for PREC, which is a token
+[[input.y:3.1-4: error: rule given for PREC, which is a token
 ]])
 
 AT_CLEANUP
@@ -948,10 +948,10 @@ AT_DATA([input-c.y],
 start: ;
 ]])
 AT_BISON_CHECK([[input-c.y]], [[1]], [],
-[[input-c.y:1.7: %code qualifier 'q' is not used
-input-c.y:2.7-9: %code qualifier 'bad' is not used
-input-c.y:3.7-9: %code qualifier 'bad' is not used
-input-c.y:4.7-12: %code qualifier 'format' is not used
+[[input-c.y:1.7: error: %code qualifier 'q' is not used
+input-c.y:2.7-9: error: %code qualifier 'bad' is not used
+input-c.y:3.7-9: error: %code qualifier 'bad' is not used
+input-c.y:4.7-12: error: %code qualifier 'format' is not used
 ]])
 
 AT_DATA([input-c-glr.y],
@@ -962,9 +962,9 @@ AT_DATA([input-c-glr.y],
 start: ;
 ]])
 AT_BISON_CHECK([[input-c-glr.y]], [[1]], [],
-[[input-c-glr.y:1.7: %code qualifier 'q' is not used
-input-c-glr.y:2.7-9: %code qualifier 'bad' is not used
-input-c-glr.y:3.8-10: %code qualifier 'bad' is not used
+[[input-c-glr.y:1.7: error: %code qualifier 'q' is not used
+input-c-glr.y:2.7-9: error: %code qualifier 'bad' is not used
+input-c-glr.y:3.8-10: error: %code qualifier 'bad' is not used
 ]])
 
 AT_DATA([input-c++.y],
@@ -975,9 +975,9 @@ AT_DATA([input-c++.y],
 start: ;
 ]])
 AT_BISON_CHECK([[input-c++.y]], [[1]], [],
-[[input-c++.y:1.7: %code qualifier 'q' is not used
-input-c++.y:2.7-9: %code qualifier 'bad' is not used
-input-c++.y:3.8: %code qualifier 'q' is not used
+[[input-c++.y:1.7: error: %code qualifier 'q' is not used
+input-c++.y:2.7-9: error: %code qualifier 'bad' is not used
+input-c++.y:3.8: error: %code qualifier 'q' is not used
 ]])
 
 AT_DATA([input-c++-glr.y],
@@ -988,9 +988,9 @@ AT_DATA([input-c++-glr.y],
 start: ;
 ]])
 AT_BISON_CHECK([[input-c++-glr.y]], [[1]], [],
-[[input-c++-glr.y:1.7-9: %code qualifier 'bad' is not used
-input-c++-glr.y:2.7: %code qualifier 'q' is not used
-input-c++-glr.y:3.7: %code qualifier 'q' is not used
+[[input-c++-glr.y:1.7-9: error: %code qualifier 'bad' is not used
+input-c++-glr.y:2.7: error: %code qualifier 'q' is not used
+input-c++-glr.y:3.7: error: %code qualifier 'q' is not used
 ]])
 
 AT_DATA([special-char-@@.y],
@@ -1001,9 +1001,9 @@ AT_DATA([special-char-@@.y],
 start: ;
 ]])
 AT_BISON_CHECK([[special-char-@@.y]], [[1]], [],
-[[special-char-@@.y:1.7-9: %code qualifier 'bad' is not used
-special-char-@@.y:2.7: %code qualifier 'q' is not used
-special-char-@@.y:3.7: %code qualifier 'q' is not used
+[[special-char-@@.y:1.7-9: error: %code qualifier 'bad' is not used
+special-char-@@.y:2.7: error: %code qualifier 'q' is not used
+special-char-@@.y:3.7: error: %code qualifier 'q' is not used
 ]])
 
 AT_DATA([special-char-@:>@.y],
@@ -1014,9 +1014,9 @@ AT_DATA([special-char-@:>@.y],
 start: ;
 ]])
 AT_BISON_CHECK([[special-char-@:>@.y]], [[1]], [],
-[[special-char-@:>@.y:1.7-9: %code qualifier 'bad' is not used
-special-char-@:>@.y:2.7: %code qualifier 'q' is not used
-special-char-@:>@.y:3.7: %code qualifier 'q' is not used
+[[special-char-@:>@.y:1.7-9: error: %code qualifier 'bad' is not used
+special-char-@:>@.y:2.7: error: %code qualifier 'q' is not used
+special-char-@:>@.y:3.7: error: %code qualifier 'q' is not used
 ]])
 
 AT_CLEANUP
@@ -1039,10 +1039,10 @@ start: ;
 ]])
 
 AT_BISON_CHECK([[input-redefined.y]], [[1]], [],
-[[input-redefined.y:2.9-11: %define variable 'var' redefined
-input-redefined.y:1.9-11: previous definition
-input-redefined.y:3.10-12: %define variable 'var' redefined
-input-redefined.y:2.9-11: previous definition
+[[input-redefined.y:2.9-11: error: %define variable 'var' redefined
+input-redefined.y:1.9-11:     previous definition
+input-redefined.y:3.10-12: error: %define variable 'var' redefined
+input-redefined.y:2.9-11:      previous definition
 ]])
 
 AT_DATA([input-unused.y],
@@ -1052,7 +1052,7 @@ start: ;
 ]])
 
 AT_BISON_CHECK([[input-unused.y]], [[1]], [],
-[[input-unused.y:1.9-11: %define variable 'var' is not used
+[[input-unused.y:1.9-11: error: %define variable 'var' is not used
 ]])
 
 AT_CLEANUP
@@ -1096,8 +1096,8 @@ AT_DATA([[input-dg.y]],
 start: ;
 ]])
 AT_BISON_CHECK([[-Dvar=cmd-d input-dg.y]], [[1]], [],
-[[input-dg.y:1.9-11: %define variable 'var' redefined
-<command line>:2: previous definition
+[[input-dg.y:1.9-11: error: %define variable 'var' redefined
+<command line>:2:      previous definition
 ]])
 
 AT_DATA([[input-unused.y]],
@@ -1105,8 +1105,8 @@ AT_DATA([[input-unused.y]],
 start: ;
 ]])
 AT_BISON_CHECK([[-Dunused-d -Funused-f input-unused.y]], [[1]], [],
-[[<command line>:2: %define variable 'unused-d' is not used
-<command line>:3: %define variable 'unused-f' is not used
+[[<command line>:2: error: %define variable 'unused-d' is not used
+<command line>:3: error: %define variable 'unused-f' is not used
 ]])
 
 AT_CLEANUP
@@ -1126,7 +1126,7 @@ start: ;
 ]])
 
 AT_BISON_CHECK([[Input.y]], [1], [],
-[[Input.y:2.9-14: invalid value for %define Boolean variable 'public'
+[[Input.y:2.9-14: error: invalid value for %define Boolean variable 'public'
 ]])
 
 AT_CLEANUP
@@ -1144,23 +1144,24 @@ AT_DATA([[input.y]],
 start: ;
 ]])
 AT_BISON_CHECK([[input.y]], [[1]], [[]],
-[[input.y:1.9-29: invalid value for %define variable 'lr.default-reductions': 
'bogus'
-input.y:1.9-29: accepted value: 'most'
-input.y:1.9-29: accepted value: 'consistent'
-input.y:1.9-29: accepted value: 'accepting'
+[[input.y:1.9-29: error: invalid value for %define variable 
'lr.default-reductions': 'bogus'
+input.y:1.9-29:     accepted value: 'most'
+input.y:1.9-29:     accepted value: 'consistent'
+input.y:1.9-29:     accepted value: 'accepting'
 ]])
 
 # Back-end.
+# FIXME: these should be indented, but we shouldn't mess with the m4 yet
 AT_DATA([[input.y]],
 [[%define api.push-pull neither
 %%
 start: ;
 ]])
 AT_BISON_CHECK([[input.y]], [1], [],
-[[input.y:1.9-21: invalid value for %define variable 'api.push-pull': 'neither'
-input.y:1.9-21: accepted value: 'pull'
-input.y:1.9-21: accepted value: 'push'
-input.y:1.9-21: accepted value: 'both'
+[[input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 
'neither'
+input.y:1.9-21: error: accepted value: 'pull'
+input.y:1.9-21: error: accepted value: 'push'
+input.y:1.9-21: error: accepted value: 'both'
 ]])
 
 AT_CLEANUP
@@ -1181,10 +1182,10 @@ start: ;
 ]])
 AT_BISON_CHECK([[input.y]], [1], [],
 [[input.y:1.9-21: warning: deprecated %define variable name: 'api.push_pull', 
use 'api.push-pull' [-Wdeprecated]
-input.y:1.9-21: invalid value for %define variable 'api.push-pull': 'neither'
-input.y:1.9-21: accepted value: 'pull'
-input.y:1.9-21: accepted value: 'push'
-input.y:1.9-21: accepted value: 'both'
+input.y:1.9-21: error: invalid value for %define variable 'api.push-pull': 
'neither'
+input.y:1.9-21: error: accepted value: 'pull'
+input.y:1.9-21: error: accepted value: 'push'
+input.y:1.9-21: error: accepted value: 'both'
 ]])
 
 AT_DATA([[input.y]],
@@ -1194,7 +1195,7 @@ start: ;
 ]])
 AT_BISON_CHECK([[input.y]], [1], [],
 [[input.y:1.9-34: warning: deprecated %define variable name: 
'lr.keep_unreachable_states', use 'lr.keep-unreachable-states' [-Wdeprecated]
-input.y:1.9-34: invalid value for %define Boolean variable 
'lr.keep-unreachable-states'
+input.y:1.9-34: error: invalid value for %define Boolean variable 
'lr.keep-unreachable-states'
 ]])
 
 AT_DATA([[input.y]],
@@ -1205,8 +1206,8 @@ start: ;
 ]])
 AT_BISON_CHECK([[input.y]], [1], [],
 [[input.y:1.9-17: warning: deprecated %define variable name: 'namespace', use 
'api.namespace' [-Wdeprecated]
-input.y:2.9-21: %define variable 'api.namespace' redefined
-input.y:1.9-17: previous definition
+input.y:2.9-21: error: %define variable 'api.namespace' redefined
+input.y:1.9-17:     previous definition
 ]])
 
 AT_DATA([[input.y]],
@@ -1215,7 +1216,7 @@ AT_DATA([[input.y]],
 start: ;
 ]])
 AT_BISON_CHECK([[input.y]], [[1]], [],
-[[input.y:1.9-15: %define variable 'foo_bar' is not used
+[[input.y:1.9-15: error: %define variable 'foo_bar' is not used
 ]])
 
 AT_CLEANUP
@@ -1240,7 +1241,7 @@ start: ;
 ]])
 
 AT_BISON_CHECK([[input.y]], [[1]], [],
-[[input.y:1.9-16: %define variable 'api.pure' is not used
+[[input.y:1.9-16: error: %define variable 'api.pure' is not used
 ]])
 ])
 
@@ -1274,7 +1275,7 @@ start: ;
 
 AT_BISON_CHECK([[input.y]], [1], [],
 [m4_foreach([b4_arg], m4_dquote(m4_shift($@)),
-[[input.y:3.9-21: ]b4_arg[
+[[input.y:3.9-21: error: ]b4_arg[
 ]])])
 ])
 
@@ -1325,9 +1326,9 @@ AT_CHECK([[perl -e "print 'start: \'';" >> empty.y || 
exit 77]])
 AT_BISON_CHECK([empty.y], [1], [],
 [[empty.y:2.8-9: warning: empty character literal [-Wother]
 empty.y:3.8-4.0: warning: empty character literal [-Wother]
-empty.y:3.8-4.0: missing "'" at end of line
+empty.y:3.8-4.0: error: missing "'" at end of line
 empty.y:4.8: warning: empty character literal [-Wother]
-empty.y:4.8: missing "'" at end of file
+empty.y:4.8: error: missing "'" at end of file
 ]])
 
 AT_DATA([two.y],
@@ -1340,9 +1341,9 @@ AT_CHECK([[perl -e "print 'start: \'ab';" >> two.y || 
exit 77]])
 AT_BISON_CHECK([two.y], [1], [],
 [[two.y:2.8-11: warning: extra characters in character literal [-Wother]
 two.y:3.8-4.0: warning: extra characters in character literal [-Wother]
-two.y:3.8-4.0: missing "'" at end of line
+two.y:3.8-4.0: error: missing "'" at end of line
 two.y:4.8-10: warning: extra characters in character literal [-Wother]
-two.y:4.8-10: missing "'" at end of file
+two.y:4.8-10: error: missing "'" at end of file
 ]])
 
 AT_DATA([three.y],
@@ -1355,9 +1356,9 @@ AT_CHECK([[perl -e "print 'start: \'abc';" >> three.y || 
exit 77]])
 AT_BISON_CHECK([three.y], [1], [],
 [[three.y:2.8-12: warning: extra characters in character literal [-Wother]
 three.y:3.8-4.0: warning: extra characters in character literal [-Wother]
-three.y:3.8-4.0: missing "'" at end of line
+three.y:3.8-4.0: error: missing "'" at end of line
 three.y:4.8-11: warning: extra characters in character literal [-Wother]
-three.y:4.8-11: missing "'" at end of file
+three.y:4.8-11: error: missing "'" at end of file
 ]])
 
 AT_CLEANUP
@@ -1383,30 +1384,30 @@ AT_CHECK([[perl -e 'print "start: \"\\\t\\\f\\\0\\\1\" 
;";' >> input.y \
            || exit 77]])
 
 AT_BISON_CHECK([input.y], [1], [],
-[[input.y:2.9-12: invalid number after \-escape: 777
+[[input.y:2.9-12: error: invalid number after \-escape: 777
 input.y:2.8-13: warning: empty character literal [-Wother]
-input.y:2.16-17: invalid number after \-escape: 0
+input.y:2.16-17: error: invalid number after \-escape: 0
 input.y:2.15-18: warning: empty character literal [-Wother]
-input.y:2.21-25: invalid number after \-escape: xfff
+input.y:2.21-25: error: invalid number after \-escape: xfff
 input.y:2.20-26: warning: empty character literal [-Wother]
-input.y:2.29-31: invalid number after \-escape: x0
+input.y:2.29-31: error: invalid number after \-escape: x0
 input.y:2.28-32: warning: empty character literal [-Wother]
-input.y:3.9-14: invalid number after \-escape: uffff
+input.y:3.9-14: error: invalid number after \-escape: uffff
 input.y:3.8-15: warning: empty character literal [-Wother]
-input.y:3.18-23: invalid number after \-escape: u0000
+input.y:3.18-23: error: invalid number after \-escape: u0000
 input.y:3.17-24: warning: empty character literal [-Wother]
-input.y:3.27-36: invalid number after \-escape: Uffffffff
+input.y:3.27-36: error: invalid number after \-escape: Uffffffff
 input.y:3.26-37: warning: empty character literal [-Wother]
-input.y:3.40-49: invalid number after \-escape: U00000000
+input.y:3.40-49: error: invalid number after \-escape: U00000000
 input.y:3.39-50: warning: empty character literal [-Wother]
-input.y:4.9-10: invalid character after \-escape: ' '
+input.y:4.9-10: error: invalid character after \-escape: ' '
 input.y:4.8-11: warning: empty character literal [-Wother]
-input.y:4.14-15: invalid character after \-escape: A
+input.y:4.14-15: error: invalid character after \-escape: A
 input.y:4.13-16: warning: empty character literal [-Wother]
-input.y:5.9-16: invalid character after \-escape: \t
-input.y:5.17: invalid character after \-escape: \f
-input.y:5.18: invalid character after \-escape: \0
-input.y:5.19: invalid character after \-escape: \001
+input.y:5.9-16: error: invalid character after \-escape: \t
+input.y:5.17: error: invalid character after \-escape: \f
+input.y:5.18: error: invalid character after \-escape: \0
+input.y:5.19: error: invalid character after \-escape: \001
 ]])
 
 AT_CLEANUP
@@ -1425,11 +1426,11 @@ start: ;
 # parse.lac.* options are useless if LAC isn't actually activated.
 AT_BISON_CHECK([[-Dparse.lac.es-capacity-initial=1 input.y]],
                [[1]], [],
-[[<command line>:2: %define variable 'parse.lac.es-capacity-initial' is not 
used
+[[<command line>:2: error: %define variable 'parse.lac.es-capacity-initial' is 
not used
 ]])
 AT_BISON_CHECK([[-Dparse.lac.memory-trace=full input.y]],
                [[1]], [],
-[[<command line>:2: %define variable 'parse.lac.memory-trace' is not used
+[[<command line>:2: error: %define variable 'parse.lac.memory-trace' is not 
used
 ]])
 
 AT_CLEANUP
@@ -1483,7 +1484,7 @@ m4_pushdef([AT_TEST],
 exp:;
 ]])
 AT_BISON_CHECK([[$2 input.y]], [[1]], [[]],
-[[$3: '%name-prefix' and '%define api.prefix' cannot be used together
+[[$3: error: '%name-prefix' and '%define api.prefix' cannot be used together
 ]])
 ])
 
diff --git a/tests/named-refs.at b/tests/named-refs.at
index f9e48a5..1cd55b3 100644
--- a/tests/named-refs.at
+++ b/tests/named-refs.at
@@ -251,16 +251,16 @@ exp:
 ]])
 
 AT_BISON_CHECK([-o test.c test.y], 1, [],
-[[test.y:50.51-60: invalid reference: '$<ival>lo9'
+[[test.y:50.51-60: error: invalid reference: '$<ival>lo9'
 test.y:50.3-68:      symbol not found in production: lo9
 test.y:51.51-60: warning: misleading reference: '$<ival>exp' [-Wother]
-test.y:42.1-3:       warning: refers to: $exp at $$ [-Wother]
-test.y:51.7:         warning: possibly meant: $x, hiding $exp at $1 [-Wother]
-test.y:51.41:        warning: possibly meant: $r, hiding $exp at $4 [-Wother]
-test.y:52.51-52: $l of 'exp' has no declared type
-test.y:55.46-49: invalid reference: '$r12'
+test.y:42.1-3:       refers to: $exp at $$ [-Wother]
+test.y:51.7:         possibly meant: $x, hiding $exp at $1 [-Wother]
+test.y:51.41:        possibly meant: $r, hiding $exp at $4 [-Wother]
+test.y:52.51-52: error: $l of 'exp' has no declared type
+test.y:55.46-49: error: invalid reference: '$r12'
 test.y:55.3-53:      symbol not found in production: r12
-test.y:56.29-33: invalid reference: '$expo'
+test.y:56.29-33: error: invalid reference: '$expo'
 test.y:56.3-46:      symbol not found in production: expo
 ]])
 AT_BISON_OPTION_POPDEFS
@@ -278,8 +278,8 @@ foo.bar: '2'
 ]])
 AT_BISON_CHECK([-o test.c test.y], 0, [],
 [[test.y:11.22-29: warning: misleading reference: '$foo.bar' [-Wother]
-test.y:11.8-10:      warning: refers to: $foo at $1 [-Wother]
-test.y:11.12-18:     warning: possibly meant: $[foo.bar] at $2 [-Wother]
+test.y:11.8-10:      refers to: $foo at $1 [-Wother]
+test.y:11.12-18:     possibly meant: $[foo.bar] at $2 [-Wother]
 ]])
 AT_CLEANUP
 
@@ -353,43 +353,43 @@ factor:     '(' expr ')'  { $$ = $2; }
     ;
 ]])
 AT_BISON_CHECK([-o test.c test.y], 1, [],
-[[test.y:24.36-41: invalid reference: '$cond1'
+[[test.y:24.36-41: error: invalid reference: '$cond1'
 test.y:23.11-24.62:  symbol not found in production: cond1
-test.y:26.43-53: invalid reference: '$stmt.field'
+test.y:26.43-53: error: invalid reference: '$stmt.field'
 test.y:25.11-26.60:  symbol not found in production: stmt
 test.y:25.35-38:     possibly meant: $then.field, hiding $stmt.field at $4
-test.y:28.43-52: invalid reference: '$stmt.list'
+test.y:28.43-52: error: invalid reference: '$stmt.list'
 test.y:27.11-28.59:  symbol not found in production: stmt
 test.y:27.30-38:     possibly meant: $[stmt.list] at $4
-test.y:30.43-46: ambiguous reference: '$xyz'
+test.y:30.43-46: error: ambiguous reference: '$xyz'
 test.y:29.35-37:     refers to: $xyz at $4
 test.y:29.50-52:     refers to: $xyz at $6
-test.y:32.43-52: invalid reference: '$stmt.list'
+test.y:32.43-52: error: invalid reference: '$stmt.list'
 test.y:31.11-32.63:  symbol not found in production: stmt
 test.y:31.40-43:     possibly meant: $then, hiding $[stmt.list] at $4
 test.y:31.61-64:     possibly meant: $else, hiding $[stmt.list] at $6
-test.y:34.43-58: invalid reference: '$stmt.list.field'
+test.y:34.43-58: error: invalid reference: '$stmt.list.field'
 test.y:33.11-34.69:  symbol not found in production: stmt
 test.y:33.40-43:     possibly meant: $then.field, hiding $[stmt.list].field at 
$4
 test.y:33.61-64:     possibly meant: $else.field, hiding $[stmt.list].field at 
$6
-test.y:36.43-54: invalid reference: '$[stmt.list]'
+test.y:36.43-54: error: invalid reference: '$[stmt.list]'
 test.y:35.11-36.71:  symbol not found in production: stmt.list
 test.y:35.40-43:     possibly meant: $then, hiding $[stmt.list] at $4
 test.y:35.61-64:     possibly meant: $else, hiding $[stmt.list] at $6
-test.y:38.43-49: invalid reference: '$then.1'
+test.y:38.43-49: error: invalid reference: '$then.1'
 test.y:37.11-38.60:  symbol not found in production: then
 test.y:37.40-45:     possibly meant: $[then.1] at $4
-test.y:40.43-55: invalid reference: '$then.1.field'
+test.y:40.43-55: error: invalid reference: '$then.1.field'
 test.y:39.11-40.66:  symbol not found in production: then
 test.y:39.40-45:     possibly meant: $[then.1].field at $4
-test.y:42.44-50: invalid reference: '$stmt.x'
+test.y:42.44-50: error: invalid reference: '$stmt.x'
 test.y:41.12-42.57:  symbol not found in production: stmt
 test.y:41.36-41:     possibly meant: $[stmt.x].x, hiding $stmt.x at $4
 test.y:41.36-41:     possibly meant: $[stmt.x] at $4
-test.y:44.13-22: invalid reference: '$if-stmt-a'
+test.y:44.13-22: error: invalid reference: '$if-stmt-a'
 test.y:43.12-44.59:  symbol not found in production: if
 test.y:43.1-9:       possibly meant: $[if-stmt-a] at $$
-test.y:46.46-54: invalid reference: '$then-a.f'
+test.y:46.46-54: error: invalid reference: '$then-a.f'
 test.y:45.12-46.65:  symbol not found in production: then
 test.y:45.41-46:     possibly meant: $[then-a].f at $4
 ]])
@@ -405,7 +405,7 @@ start: foo[] bar
   { s = $foo; }
 ]])
 AT_BISON_CHECK([-o test.c test.y], 1, [],
-[[test.y:11.12: an identifier expected
+[[test.y:11.12: error: an identifier expected
 ]])
 AT_CLEANUP
 
@@ -419,7 +419,7 @@ start: foo[ a d ] bar
   { s = $foo; }
 ]])
 AT_BISON_CHECK([-o test.c test.y], 1, [],
-[[test.y:11.15: unexpected identifier in bracketed name: 'd'
+[[test.y:11.15: error: unexpected identifier in bracketed name: 'd'
 ]])
 AT_CLEANUP
 
@@ -433,7 +433,7 @@ start: foo[/* comment */] bar
   { s = $foo; }
 ]])
 AT_BISON_CHECK([-o test.c test.y], 1, [],
-[[test.y:11.25: an identifier expected
+[[test.y:11.25: error: an identifier expected
 ]])
 AT_CLEANUP
 
@@ -447,10 +447,10 @@ start: foo[ /* aaa */ *&-.+ ] bar
   { s = $foo; }
 ]])
 AT_BISON_CHECK([-o test.c test.y], 1, [],
-[[test.y:11.23: invalid character in bracketed name: '*'
-test.y:11.24: invalid character in bracketed name: '&'
-test.y:11.25: invalid character in bracketed name: '-'
-test.y:11.27: invalid character in bracketed name: '+'
+[[test.y:11.23: error: invalid character in bracketed name: '*'
+test.y:11.24: error: invalid character in bracketed name: '&'
+test.y:11.25: error: invalid character in bracketed name: '-'
+test.y:11.27: error: invalid character in bracketed name: '+'
 ]])
 AT_CLEANUP
 
@@ -463,7 +463,7 @@ AT_DATA_GRAMMAR([test.y],
 start[a s]: foo;
 ]])
 AT_BISON_CHECK([-o test.c test.y], 1, [],
-[[test.y:11.9: unexpected identifier in bracketed name: 's'
+[[test.y:11.9: error: unexpected identifier in bracketed name: 's'
 ]])
 AT_CLEANUP
 
@@ -510,37 +510,37 @@ sym_a: 'a';
 sym_b: 'b';
 ]])
 AT_BISON_CHECK([-o test.c test.y], 1, [],
-[[test.y:12.22-31: invalid reference: '$sym.field'
+[[test.y:12.22-31: error: invalid reference: '$sym.field'
 test.y:12.3-35:      symbol not found in production: sym
-test.y:13.22-35: invalid reference: '$<aa>sym.field'
+test.y:13.22-35: error: invalid reference: '$<aa>sym.field'
 test.y:13.3-39:      symbol not found in production: sym
-test.y:14.22-33: invalid reference: '$[sym.field]'
+test.y:14.22-33: error: invalid reference: '$[sym.field]'
 test.y:14.3-37:      symbol not found in production: sym.field
-test.y:15.22-37: invalid reference: '$<aa>[sym.field]'
+test.y:15.22-37: error: invalid reference: '$<aa>[sym.field]'
 test.y:15.3-41:      symbol not found in production: sym.field
-test.y:16.22-25: invalid reference: '$sym'
+test.y:16.22-25: error: invalid reference: '$sym'
 test.y:16.3-29:      symbol not found in production: sym
-test.y:17.22-29: invalid reference: '$<aa>sym'
+test.y:17.22-29: error: invalid reference: '$<aa>sym'
 test.y:17.3-33:      symbol not found in production: sym
-test.y:18.22-27: invalid reference: '$[sym]'
+test.y:18.22-27: error: invalid reference: '$[sym]'
 test.y:18.3-65:      symbol not found in production before $3: sym
-test.y:18.52-61: invalid reference: '$<aa>[sym]'
+test.y:18.52-61: error: invalid reference: '$<aa>[sym]'
 test.y:18.3-65:      symbol not found in production: sym
-test.y:22.22-31: invalid reference: '$sym-field'
+test.y:22.22-31: error: invalid reference: '$sym-field'
 test.y:22.3-35:      symbol not found in production: sym
-test.y:23.22-35: invalid reference: '$<aa>sym-field'
+test.y:23.22-35: error: invalid reference: '$<aa>sym-field'
 test.y:23.3-39:      symbol not found in production: sym
-test.y:24.22-33: invalid reference: '$[sym-field]'
+test.y:24.22-33: error: invalid reference: '$[sym-field]'
 test.y:24.3-37:      symbol not found in production: sym-field
-test.y:25.22-37: invalid reference: '$<aa>[sym-field]'
+test.y:25.22-37: error: invalid reference: '$<aa>[sym-field]'
 test.y:25.3-41:      symbol not found in production: sym-field
-test.y:26.22-25: invalid reference: '$sym'
+test.y:26.22-25: error: invalid reference: '$sym'
 test.y:26.3-29:      symbol not found in production: sym
-test.y:27.22-29: invalid reference: '$<aa>sym'
+test.y:27.22-29: error: invalid reference: '$<aa>sym'
 test.y:27.3-33:      symbol not found in production: sym
-test.y:28.22-27: invalid reference: '$[sym]'
+test.y:28.22-27: error: invalid reference: '$[sym]'
 test.y:28.3-65:      symbol not found in production before $3: sym
-test.y:28.52-61: invalid reference: '$<aa>[sym]'
+test.y:28.52-61: error: invalid reference: '$<aa>[sym]'
 test.y:28.3-65:      symbol not found in production: sym
 ]])
 AT_CLEANUP
@@ -558,10 +558,10 @@ start:
 .field: ;
 ]])
 AT_BISON_CHECK([[test.y]], [[1]], [],
-[[test.y:4.12-18: invalid reference: '$.field'
+[[test.y:4.12-18: error: invalid reference: '$.field'
 test.y:4.13:        syntax error after '$', expecting integer, letter, '_', 
'@<:@', or '$'
 test.y:4.3-8:       possibly meant: $[.field] at $1
-test.y:5.12-18: invalid reference: '@.field'
+test.y:5.12-18: error: invalid reference: '@.field'
 test.y:5.13:        syntax error after '@', expecting integer, letter, '_', 
'@<:@', or '$'
 ]])
 AT_DATA([[test.y]],
diff --git a/tests/output.at b/tests/output.at
index cce330e..3a13fd3 100644
--- a/tests/output.at
+++ b/tests/output.at
@@ -191,7 +191,7 @@ AT_CHECK_CONFLICTING_OUTPUT([foo.y],
 ]])
 
 AT_CHECK_CONFLICTING_OUTPUT([foo.y], [], [-o foo.y],
-[[foo.y: refusing to overwrite the input file 'foo.y'
+[[foo.y: error: refusing to overwrite the input file 'foo.y'
 ]], 1)
 
 
diff --git a/tests/push.at b/tests/push.at
index d2c0926..1b99397 100644
--- a/tests/push.at
+++ b/tests/push.at
@@ -153,7 +153,7 @@ start: ;
 AT_BISON_OPTION_POPDEFS
 
 AT_BISON_CHECK([[input.y]], [[1]], [],
-[[input.y:2.9-21: %define variable 'api.push-pull' is not used
+[[input.y:2.9-21: error: %define variable 'api.push-pull' is not used
 ]])
 
 AT_CLEANUP
diff --git a/tests/regression.at b/tests/regression.at
index 5911c53..2fb180e 100644
--- a/tests/regression.at
+++ b/tests/regression.at
@@ -401,15 +401,15 @@ default: 'a' }
 ]])
 
 AT_BISON_CHECK([input.y], [1], [],
-[[input.y:2.1: invalid character: '?'
-input.y:3.14: invalid character: '}'
-input.y:4.1: invalid character: '%'
-input.y:4.2: invalid character: '&'
-input.y:5.1-17: invalid directive: '%a-does-not-exist'
-input.y:6.1: invalid character: '%'
-input.y:6.2: invalid character: '-'
-input.y:7.1-8.0: missing '%}' at end of file
-input.y:7.1-8.0: syntax error, unexpected %{...%}
+[[input.y:2.1: error: invalid character: '?'
+input.y:3.14: error: invalid character: '}'
+input.y:4.1: error: invalid character: '%'
+input.y:4.2: error: invalid character: '&'
+input.y:5.1-17: error: invalid directive: '%a-does-not-exist'
+input.y:6.1: error: invalid character: '%'
+input.y:6.2: error: invalid character: '-'
+input.y:7.1-8.0: error: missing '%}' at end of file
+input.y:7.1-8.0: error: syntax error, unexpected %{...%}
 ]])
 
 AT_CLEANUP
@@ -428,7 +428,7 @@ AT_DATA([input.y],
 ]])
 
 AT_BISON_CHECK([input.y], [1], [],
-[[input.y:3.1-15: syntax error, unexpected %initial-action, expecting {...}
+[[input.y:3.1-15: error: syntax error, unexpected %initial-action, expecting 
{...}
 ]])
 
 AT_CLEANUP
diff --git a/tests/skeletons.at b/tests/skeletons.at
index ce32e88..ce079d6 100644
--- a/tests/skeletons.at
+++ b/tests/skeletons.at
@@ -157,7 +157,7 @@ start: ;
 ]])
 
 AT_BISON_CHECK([[input.y]], [[1]], [[]],
-[[<skeleton default value>: invalid value for %define Boolean variable 'foo'
+[[<skeleton default value>: error: invalid value for %define Boolean variable 
'foo'
 ]])
 
 AT_CLEANUP
@@ -193,8 +193,8 @@ start: ;
 AT_BISON_CHECK([[input1.y]], [[1]], [[]],
 [[input1.y: warning: foow fubar [-Wother]
 foow.y:2.3-5.3: warning: foowat fubar [-Wother]
-input1.y: fooc fubar
-fooc.y:1.1-10.5: foocat fubar
+input1.y: error: fooc fubar
+fooc.y:1.1-10.5: error: foocat fubar
 input1.y: fatal error: foof fubar
 ]])
 
@@ -264,7 +264,7 @@ start: ;
 ]])
 
 AT_BISON_CHECK([[input1.y]], [[1]], [[]],
-[[input1.y: non-fatal error
+[[input1.y: error: non-fatal error
 input1.y: fatal error: M4 should exit immediately here
 ]])
 




reply via email to

[Prev in Thread] Current Thread [Next in Thread]