[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Bison scanner patch to fix POSIX incompatibilities, etc.
From: |
Paul Eggert |
Subject: |
Re: Bison scanner patch to fix POSIX incompatibilities, etc. |
Date: |
Tue, 5 Nov 2002 23:13:29 -0800 (PST) |
> From: Akim Demaille <address@hidden>
> Date: 05 Nov 2002 09:30:47 +0100
>
> Paul> I'll take a look at it in the next day or two -- it's fresh in
> Paul> my head so it shouldn't take me long. In some cases we can
> Paul> issue a more accurate message (e.g. "integer out of range: %s").
>
> Seconded.
I installed the following patch.
2002-11-05 Paul Eggert <address@hidden>
* src/scan-gram.l: Use more accurate diagnostics, e.g.
"integer out of range" rather than "invalid value".
* tests/input.at (Invalid $n, Invalid @n): Change expected wording
accordingly.
Index: scan-gram.l
===================================================================
RCS file: /cvsroot/bison/bison/src/scan-gram.l,v
retrieving revision 1.33
retrieving revision 1.34
diff -p -u -r1.33 -r1.34
--- scan-gram.l 5 Nov 2002 23:50:11 -0000 1.33
+++ scan-gram.l 6 Nov 2002 07:01:06 -0000 1.34
@@ -274,7 +274,7 @@ splice (\\[ \f\t\v]*\n)*
num = strtoul (yytext, 0, 10);
if (INT_MAX < num || errno)
{
- complain_at (*yylloc, _("invalid value: %s"), quote (yytext));
+ complain_at (*yylloc, _("integer out of range: %s"), quote (yytext));
num = INT_MAX;
}
yylval->integer = num;
@@ -435,7 +435,7 @@ splice (\\[ \f\t\v]*\n)*
[^\'\\]+ YY_OBS_GROW;
<<EOF>> {
- complain_at (*yylloc, _("unexpected end of file in a character"));
+ complain_at (*yylloc, _("unexpected end of file in a character literal"));
assert (yy_top_state () == INITIAL);
YY_OBS_FINISH;
yylval->string = last_string;
@@ -455,7 +455,8 @@ splice (\\[ \f\t\v]*\n)*
unsigned long c = strtoul (yytext + 1, 0, 8);
if (UCHAR_MAX < c)
{
- complain_at (*yylloc, _("invalid escape: %s"), quote (yytext));
+ complain_at (*yylloc, _("invalid escape sequence: %s"),
+ quote (yytext));
YY_STEP;
}
else
@@ -468,7 +469,8 @@ splice (\\[ \f\t\v]*\n)*
c = strtoul (yytext + 2, 0, 16);
if (UCHAR_MAX < c || errno)
{
- complain_at (*yylloc, _("invalid escape: %s"), quote (yytext));
+ complain_at (*yylloc, _("invalid escape sequence: %s"),
+ quote (yytext));
YY_STEP;
}
else
@@ -487,14 +489,16 @@ splice (\\[ \f\t\v]*\n)*
int c = convert_ucn_to_byte (yytext);
if (c < 0)
{
- complain_at (*yylloc, _("invalid escape: %s"), quote (yytext));
+ complain_at (*yylloc, _("invalid escape sequence: %s"),
+ quote (yytext));
YY_STEP;
}
else
obstack_1grow (&string_obstack, c);
}
\\(.|\n) {
- complain_at (*yylloc, _("unrecognized escape: %s"), quote (yytext));
+ complain_at (*yylloc, _("unrecognized escape sequence: %s"),
+ quote (yytext));
YY_OBS_GROW;
}
/* FLex wants this rule, in case of a `\<<EOF>>'. */
@@ -522,7 +526,7 @@ splice (\\[ \f\t\v]*\n)*
\\ YY_OBS_GROW;
<<EOF>> {
- complain_at (*yylloc, _("unexpected end of file in a character"));
+ complain_at (*yylloc, _("unexpected end of file in a character literal"));
assert (yy_top_state () != INITIAL);
yy_pop_state ();
}
@@ -609,7 +613,7 @@ splice (\\[ \f\t\v]*\n)*
[^\"$%\'/<@\[\]\{\}]+|[$%/<@]|"<"{splice}"<" YY_OBS_GROW;
<<EOF>> {
- complain_at (*yylloc, _("unexpected end of file in a braced code"));
+ complain_at (*yylloc, _("unexpected end of file in `{ ... }'"));
yy_pop_state ();
YY_OBS_FINISH;
yylval->string = last_string;
@@ -636,7 +640,7 @@ splice (\\[ \f\t\v]*\n)*
"%" YY_OBS_GROW;
<<EOF>> {
- complain_at (*yylloc, _("unexpected end of file in a prologue"));
+ complain_at (*yylloc, _("unexpected end of file in `%%{ ... %%}'"));
yy_pop_state ();
YY_OBS_FINISH;
yylval->string = last_string;
@@ -723,7 +727,7 @@ handle_action_dollar (char *text, locati
rule_length, n, type_name);
}
else
- complain_at (location, _("invalid value: %s"), quote (text));
+ complain_at (location, _("integer out of range: %s"), quote (text));
}
}
@@ -795,7 +799,7 @@ handle_action_at (char *text, location_t
rule_length, n);
}
else
- complain_at (location, _("invalid value: %s"), quote (text));
+ complain_at (location, _("integer out of range: %s"), quote (text));
}
}
Index: input.at
===================================================================
RCS file: /cvsroot/bison/bison/tests/input.at,v
retrieving revision 1.15
retrieving revision 1.16
diff -p -u -r1.15 -r1.16
--- input.at 4 Nov 2002 08:28:01 -0000 1.15
+++ input.at 6 Nov 2002 07:01:55 -0000 1.16
@@ -33,7 +33,7 @@ exp: { $$ = $1 ; };
]])
AT_CHECK([bison input.y], [1], [],
-[[input.y:2.6-14: invalid value: `$1'
+[[input.y:2.6-14: integer out of range: `$1'
]])
AT_CLEANUP
@@ -51,7 +51,7 @@ exp: { @$ = @1 ; };
]])
AT_CHECK([bison input.y], [1], [],
-[[input.y:2.6-14: invalid value: address@hidden'
+[[input.y:2.6-14: integer out of range: address@hidden'
]])
AT_CLEANUP
- Bison scanner patch to fix POSIX incompatibilities, etc., Paul Eggert, 2002/11/03
- Re: Bison scanner patch to fix POSIX incompatibilities, etc., Akim Demaille, 2002/11/04
- Re: Bison scanner patch to fix POSIX incompatibilities, etc., Paul Eggert, 2002/11/04
- Re: Bison scanner patch to fix POSIX incompatibilities, etc., Akim Demaille, 2002/11/05
- Re: Bison scanner patch to fix POSIX incompatibilities, etc., Paul Eggert, 2002/11/05
- Re: Bison scanner patch to fix POSIX incompatibilities, etc., Akim Demaille, 2002/11/06
- Re: Bison scanner patch to fix POSIX incompatibilities, etc., Paul Eggert, 2002/11/06
- Re: Bison scanner patch to fix POSIX incompatibilities, etc., Akim Demaille, 2002/11/07
- Re: Bison scanner patch to fix POSIX incompatibilities, etc., Paul Eggert, 2002/11/05
- Re: Bison scanner patch to fix POSIX incompatibilities, etc.,
Paul Eggert <=
- Re: Bison scanner patch to fix POSIX incompatibilities, etc., Akim Demaille, 2002/11/06
- Re: Bison scanner patch to fix POSIX incompatibilities, etc., Paul Eggert, 2002/11/07
Re: Bison scanner patch to fix POSIX incompatibilities, etc., Akim Demaille, 2002/11/04