mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 12:23:04 +00:00
quote consistently and make tests pass with new quoting from gnulib
Updating to gnulib pulled in new quote and quotarg modules,
by which quoting is now done like 'this' rather than `this'.
That change induces many "make check" test failures. This change
adapts code and tests so that "make check" passes once again.
* src/scan-code.l: Quote like 'this', not like `this'.
* src/scan-gram.l: Likewise.
* src/symtab.c: Likewise.
* tests/actions.at: Adjust tests to match.
* tests/input.at: Likewise.
* tests/named-refs.at: Likewise.
* tests/output.at: Likewise.
* tests/regression.at: Likewise.
* lib/.gitignore: Regenerate.
* m4/.gitignore: Likewise.
(cherry picked from commit ae93e4e4b8)
Conflicts:
src/scan-code.l
src/scan-gram.l
src/symtab.c
tests/output.at
This commit is contained in:
committed by
Akim Demaille
parent
14594e38ad
commit
9874f80b2e
16
lib/.gitignore
vendored
16
lib/.gitignore
vendored
@@ -243,3 +243,19 @@
|
||||
/xstrndup.c
|
||||
/xstrndup.h
|
||||
|
||||
/c-strcaseeq.h
|
||||
/fd-hook.c
|
||||
/fd-hook.h
|
||||
/float.c
|
||||
/fstat.c
|
||||
/itold.c
|
||||
/msvc-inval.c
|
||||
/msvc-inval.h
|
||||
/msvc-nothrow.c
|
||||
/msvc-nothrow.h
|
||||
/pathmax.h
|
||||
/raise.c
|
||||
/strerror-override.c
|
||||
/strerror-override.h
|
||||
/strerror_r.c
|
||||
/xalloc-oversized.h
|
||||
|
||||
9
m4/.gitignore
vendored
9
m4/.gitignore
vendored
@@ -157,3 +157,12 @@
|
||||
/xsize.m4
|
||||
/xstrndup.m4
|
||||
|
||||
/fstat.m4
|
||||
/largefile.m4
|
||||
/ldexp.m4
|
||||
/msvc-inval.m4
|
||||
/msvc-nothrow.m4
|
||||
/pathmax.m4
|
||||
/raise.m4
|
||||
/ssize_t.m4
|
||||
/strerror_r.m4
|
||||
|
||||
@@ -95,10 +95,10 @@ ref -?[0-9]+|{id}|"["{id}"]"|"$"
|
||||
int braces_level = 0;
|
||||
|
||||
/* Whether a semicolon is probably needed.
|
||||
The heuristic is that a semicolon is not needed after `{', `}', `;',
|
||||
The heuristic is that a semicolon is not needed after '{', '}', ';',
|
||||
or a C preprocessor directive, and that whitespaces and comments
|
||||
do not affect this flag.
|
||||
Note that `{' does not need a semicolon because of `{}'.
|
||||
Note that '{' does not need a semicolon because of '{}'.
|
||||
A semicolon may be needed before a cpp direcive, but don't bother. */
|
||||
bool need_semicolon = false;
|
||||
|
||||
@@ -117,7 +117,7 @@ ref -?[0-9]+|{id}|"["{id}"]"|"$"
|
||||
%}
|
||||
|
||||
/*------------------------------------------------------------.
|
||||
| Scanning a C comment. The initial `/ *' is already eaten. |
|
||||
| Scanning a C comment. The initial '/ *' is already eaten. |
|
||||
`------------------------------------------------------------*/
|
||||
|
||||
<SC_COMMENT>
|
||||
@@ -127,7 +127,7 @@ ref -?[0-9]+|{id}|"["{id}"]"|"$"
|
||||
|
||||
|
||||
/*--------------------------------------------------------------.
|
||||
| Scanning a line comment. The initial `//' is already eaten. |
|
||||
| Scanning a line comment. The initial '//' is already eaten. |
|
||||
`--------------------------------------------------------------*/
|
||||
|
||||
<SC_LINE_COMMENT>
|
||||
@@ -197,12 +197,12 @@ ref -?[0-9]+|{id}|"["{id}"]"|"$"
|
||||
need_semicolon = true;
|
||||
}
|
||||
"$" {
|
||||
warn_at (*loc, _("stray `$'"));
|
||||
warn_at (*loc, _("stray '$'"));
|
||||
obstack_sgrow (&obstack_for_string, "$][");
|
||||
need_semicolon = true;
|
||||
}
|
||||
"@" {
|
||||
warn_at (*loc, _("stray `@'"));
|
||||
warn_at (*loc, _("stray '@'"));
|
||||
obstack_sgrow (&obstack_for_string, "@@");
|
||||
need_semicolon = true;
|
||||
}
|
||||
@@ -220,16 +220,16 @@ ref -?[0-9]+|{id}|"["{id}"]"|"$"
|
||||
"}" {
|
||||
bool outer_brace = --braces_level == 0;
|
||||
|
||||
/* As an undocumented Bison extension, append `;' before the last
|
||||
/* As an undocumented Bison extension, append ';' before the last
|
||||
brace in braced code, so that the user code can omit trailing
|
||||
`;'. But do not append `;' if emulating Yacc, since Yacc does
|
||||
';'. But do not append ';' if emulating Yacc, since Yacc does
|
||||
not append one. */
|
||||
if (outer_brace && !yacc_flag && language_prio == default_prio
|
||||
&& skeleton_prio == default_prio && need_semicolon && ! in_cpp)
|
||||
{
|
||||
warn_at (*loc, _("a `;' might be needed at the end of action code"));
|
||||
warn_at (*loc, _("future versions of Bison will not add the `;'"));
|
||||
obstack_1grow (&obstack_for_string, ';');
|
||||
warn_at (*loc, _("a ';' might be needed at the end of action code"));
|
||||
warn_at (*loc, _("future versions of Bison will not add the ';'"));
|
||||
obstack_1grow (&obstack_for_string, ';');
|
||||
}
|
||||
|
||||
STRING_GROW;
|
||||
@@ -238,8 +238,8 @@ ref -?[0-9]+|{id}|"["{id}"]"|"$"
|
||||
|
||||
/* Preprocessing directives should only be recognized at the beginning
|
||||
of lines, allowing whitespace including comments, but in C/C++,
|
||||
`#' can only be the start of preprocessor directives or within
|
||||
`#define' directives anyway, so don't bother with begin of line. */
|
||||
'#' can only be the start of preprocessor directives or within
|
||||
'#define' directives anyway, so don't bother with begin of line. */
|
||||
"#" STRING_GROW; in_cpp = true;
|
||||
|
||||
{splice} STRING_GROW;
|
||||
@@ -626,8 +626,8 @@ parse_ref (char *cp, symbol_list *rule, int rule_length,
|
||||
sym_loc.start.column += 1;
|
||||
sym_loc.end = sym_loc.start;
|
||||
const char *format =
|
||||
_("syntax error after `%c', expecting integer, letter,"
|
||||
" `_', `[', or `$'");
|
||||
_("syntax error after '%c', expecting integer, letter,"
|
||||
" '_', '[', or '$'");
|
||||
complain_at_indent (sym_loc, &indent, format, dollar_or_at);
|
||||
}
|
||||
else if (midrule_rhs_index)
|
||||
@@ -689,7 +689,7 @@ int max_left_semantic_context = 0;
|
||||
|
||||
|
||||
/*------------------------------------------------------------------.
|
||||
| TEXT is pointing to a wannabee semantic value (i.e., a `$'). |
|
||||
| TEXT is pointing to a wannabee semantic value (i.e., a '$'). |
|
||||
| |
|
||||
| Possible inputs: $[<TYPENAME>]($|integer) |
|
||||
| |
|
||||
@@ -749,23 +749,23 @@ handle_action_dollar (symbol_list *rule, char *text, location dollar_loc)
|
||||
type_name = symbol_list_n_type_name_get (rule, dollar_loc, 0);
|
||||
|
||||
if (!type_name)
|
||||
{
|
||||
if (union_seen | tag_seen)
|
||||
{
|
||||
if (rule->midrule_parent_rule)
|
||||
complain_at (dollar_loc,
|
||||
_("$$ for the midrule at $%d of `%s'"
|
||||
" has no declared type"),
|
||||
rule->midrule_parent_rhs_index,
|
||||
effective_rule->content.sym->tag);
|
||||
else
|
||||
complain_at (dollar_loc, _("$$ of `%s' has no declared type"),
|
||||
rule->content.sym->tag);
|
||||
}
|
||||
else
|
||||
untyped_var_seen = true;
|
||||
type_name = "";
|
||||
}
|
||||
{
|
||||
if (union_seen | tag_seen)
|
||||
{
|
||||
if (rule->midrule_parent_rule)
|
||||
complain_at (dollar_loc,
|
||||
_("$$ for the midrule at $%d of '%s'"
|
||||
" has no declared type"),
|
||||
rule->midrule_parent_rhs_index,
|
||||
effective_rule->content.sym->tag);
|
||||
else
|
||||
complain_at (dollar_loc, _("$$ of '%s' has no declared type"),
|
||||
rule->content.sym->tag);
|
||||
}
|
||||
else
|
||||
untyped_var_seen = true;
|
||||
type_name = "";
|
||||
}
|
||||
|
||||
obstack_fgrow1 (&obstack_for_string,
|
||||
"]b4_lhs_value([%s])[", type_name);
|
||||
@@ -779,14 +779,14 @@ handle_action_dollar (symbol_list *rule, char *text, location dollar_loc)
|
||||
type_name =
|
||||
symbol_list_n_type_name_get (effective_rule, dollar_loc, n);
|
||||
if (!type_name)
|
||||
{
|
||||
if (union_seen | tag_seen)
|
||||
complain_at (dollar_loc, _("$%s of `%s' has no declared type"),
|
||||
cp, effective_rule->content.sym->tag);
|
||||
else
|
||||
untyped_var_seen = true;
|
||||
type_name = "";
|
||||
}
|
||||
{
|
||||
if (union_seen | tag_seen)
|
||||
complain_at (dollar_loc, _("$%s of '%s' has no declared type"),
|
||||
cp, effective_rule->content.sym->tag);
|
||||
else
|
||||
untyped_var_seen = true;
|
||||
type_name = "";
|
||||
}
|
||||
|
||||
obstack_fgrow3 (&obstack_for_string,
|
||||
"]b4_rhs_value(%d, %d, [%s])[",
|
||||
@@ -800,7 +800,7 @@ handle_action_dollar (symbol_list *rule, char *text, location dollar_loc)
|
||||
|
||||
|
||||
/*------------------------------------------------------.
|
||||
| TEXT is a location token (i.e., a `@...'). Output to |
|
||||
| TEXT is a location token (i.e., a '@...'). Output to |
|
||||
| OBSTACK_FOR_STRING a reference to this location. |
|
||||
`------------------------------------------------------*/
|
||||
|
||||
|
||||
@@ -88,11 +88,11 @@ static void unexpected_newline (boundary, char const *);
|
||||
/* Strings and characters in directives/rules. */
|
||||
%x SC_ESCAPED_STRING SC_ESCAPED_CHARACTER
|
||||
/* A identifier was just read in directives/rules. Special state
|
||||
to capture the sequence `identifier :'. */
|
||||
to capture the sequence 'identifier :'. */
|
||||
%x SC_AFTER_IDENTIFIER
|
||||
|
||||
/* Three types of user code:
|
||||
- prologue (code between `%{' `%}' in the first section, before %%);
|
||||
- prologue (code between '%{' '%}' in the first section, before %%);
|
||||
- actions, printers, union, etc, (between braced in the middle section);
|
||||
- epilogue (everything after the second %%). */
|
||||
%x SC_PROLOGUE SC_BRACED_CODE SC_EPILOGUE
|
||||
@@ -146,7 +146,7 @@ splice (\\[ \f\t\v]*\n)*
|
||||
<INITIAL,SC_AFTER_IDENTIFIER,SC_BRACKETED_ID,SC_RETURN_BRACKETED_ID>
|
||||
{
|
||||
/* Comments and white space. */
|
||||
"," warn_at (*loc, _("stray `,' treated as white space"));
|
||||
"," warn_at (*loc, _("stray ',' treated as white space"));
|
||||
[ \f\n\t\v] |
|
||||
"//".* ;
|
||||
"/*" {
|
||||
@@ -397,7 +397,7 @@ splice (\\[ \f\t\v]*\n)*
|
||||
|
||||
|
||||
/*---------------------------------------------------------------.
|
||||
| Scanning a Yacc comment. The initial `/ *' is already eaten. |
|
||||
| Scanning a Yacc comment. The initial '/ *' is already eaten. |
|
||||
`---------------------------------------------------------------*/
|
||||
|
||||
<SC_YACC_COMMENT>
|
||||
@@ -409,7 +409,7 @@ splice (\\[ \f\t\v]*\n)*
|
||||
|
||||
|
||||
/*------------------------------------------------------------.
|
||||
| Scanning a C comment. The initial `/ *' is already eaten. |
|
||||
| Scanning a C comment. The initial '/ *' is already eaten. |
|
||||
`------------------------------------------------------------*/
|
||||
|
||||
<SC_COMMENT>
|
||||
@@ -420,7 +420,7 @@ splice (\\[ \f\t\v]*\n)*
|
||||
|
||||
|
||||
/*--------------------------------------------------------------.
|
||||
| Scanning a line comment. The initial `//' is already eaten. |
|
||||
| Scanning a line comment. The initial '//' is already eaten. |
|
||||
`--------------------------------------------------------------*/
|
||||
|
||||
<SC_LINE_COMMENT>
|
||||
@@ -648,8 +648,8 @@ splice (\\[ \f\t\v]*\n)*
|
||||
}
|
||||
}
|
||||
|
||||
/* Tokenize `<<%' correctly (as `<<' `%') rather than incorrrectly
|
||||
(as `<' `<%'). */
|
||||
/* Tokenize '<<%' correctly (as '<<' '%') rather than incorrrectly
|
||||
(as '<' '<%'). */
|
||||
"<"{splice}"<" STRING_GROW;
|
||||
|
||||
<<EOF>> {
|
||||
@@ -840,7 +840,7 @@ convert_ucn_to_byte (char const *ucn)
|
||||
|
||||
|
||||
/*----------------------------------------------------------------.
|
||||
| Handle `#line INT "FILE"'. ARGS has already skipped `#line '. |
|
||||
| Handle '#line INT "FILE"'. ARGS has already skipped '#line '. |
|
||||
`----------------------------------------------------------------*/
|
||||
|
||||
static void
|
||||
@@ -884,7 +884,7 @@ unexpected_end (boundary start, char const *msgid, char const *token_end)
|
||||
static void
|
||||
unexpected_eof (boundary start, char const *token_end)
|
||||
{
|
||||
unexpected_end (start, N_("missing `%s' at end of file"), token_end);
|
||||
unexpected_end (start, N_("missing '%s' at end of file"), token_end);
|
||||
}
|
||||
|
||||
|
||||
@@ -895,7 +895,7 @@ unexpected_eof (boundary start, char const *token_end)
|
||||
static void
|
||||
unexpected_newline (boundary start, char const *token_end)
|
||||
{
|
||||
unexpected_end (start, N_("missing `%s' at end of line"), token_end);
|
||||
unexpected_end (start, N_("missing '%s' at end of line"), token_end);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -409,11 +409,11 @@ void
|
||||
symbol_make_alias (symbol *sym, symbol *str, location loc)
|
||||
{
|
||||
if (str->alias)
|
||||
warn_at (loc, _("symbol `%s' used more than once as a literal string"),
|
||||
str->tag);
|
||||
warn_at (loc, _("symbol '%s' used more than once as a literal string"),
|
||||
str->tag);
|
||||
else if (sym->alias)
|
||||
warn_at (loc, _("symbol `%s' given more than one literal string"),
|
||||
sym->tag);
|
||||
warn_at (loc, _("symbol '%s' given more than one literal string"),
|
||||
sym->tag);
|
||||
else
|
||||
{
|
||||
str->class = token_sym;
|
||||
|
||||
@@ -1409,42 +1409,42 @@ string;"}
|
||||
]])
|
||||
|
||||
AT_BISON_CHECK([[-o input.c input.y]], [0], [],
|
||||
[[input.y:8.48: warning: a `;' might be needed at the end of action code
|
||||
input.y:8.48: warning: future versions of Bison will not add the `;'
|
||||
input.y:9.48: warning: a `;' might be needed at the end of action code
|
||||
input.y:9.48: warning: future versions of Bison will not add the `;'
|
||||
input.y:10.48: warning: a `;' might be needed at the end of action code
|
||||
input.y:10.48: warning: future versions of Bison will not add the `;'
|
||||
input.y:11.48: warning: a `;' might be needed at the end of action code
|
||||
input.y:11.48: warning: future versions of Bison will not add the `;'
|
||||
input.y:12.48: warning: a `;' might be needed at the end of action code
|
||||
input.y:12.48: warning: future versions of Bison will not add the `;'
|
||||
input.y:13.48: warning: a `;' might be needed at the end of action code
|
||||
input.y:13.48: warning: future versions of Bison will not add the `;'
|
||||
input.y:20.1: warning: a `;' might be needed at the end of action code
|
||||
input.y:20.1: warning: future versions of Bison will not add the `;'
|
||||
input.y:21.1: warning: a `;' might be needed at the end of action code
|
||||
input.y:21.1: warning: future versions of Bison will not add the `;'
|
||||
input.y:22.1: warning: a `;' might be needed at the end of action code
|
||||
input.y:22.1: warning: future versions of Bison will not add the `;'
|
||||
input.y:23.1: warning: a `;' might be needed at the end of action code
|
||||
input.y:23.1: warning: future versions of Bison will not add the `;'
|
||||
input.y:24.1: warning: a `;' might be needed at the end of action code
|
||||
input.y:24.1: warning: future versions of Bison will not add the `;'
|
||||
input.y:25.1: warning: a `;' might be needed at the end of action code
|
||||
input.y:25.1: warning: future versions of Bison will not add the `;'
|
||||
input.y:31.1: warning: a `;' might be needed at the end of action code
|
||||
input.y:31.1: warning: future versions of Bison will not add the `;'
|
||||
input.y:32.1: warning: a `;' might be needed at the end of action code
|
||||
input.y:32.1: warning: future versions of Bison will not add the `;'
|
||||
input.y:33.1: warning: a `;' might be needed at the end of action code
|
||||
input.y:33.1: warning: future versions of Bison will not add the `;'
|
||||
input.y:34.1: warning: a `;' might be needed at the end of action code
|
||||
input.y:34.1: warning: future versions of Bison will not add the `;'
|
||||
input.y:35.1: warning: a `;' might be needed at the end of action code
|
||||
input.y:35.1: warning: future versions of Bison will not add the `;'
|
||||
input.y:36.1: warning: a `;' might be needed at the end of action code
|
||||
input.y:36.1: warning: future versions of Bison will not add the `;'
|
||||
[[input.y:8.48: warning: a ';' might be needed at the end of action code
|
||||
input.y:8.48: warning: future versions of Bison will not add the ';'
|
||||
input.y:9.48: warning: a ';' might be needed at the end of action code
|
||||
input.y:9.48: warning: future versions of Bison will not add the ';'
|
||||
input.y:10.48: warning: a ';' might be needed at the end of action code
|
||||
input.y:10.48: warning: future versions of Bison will not add the ';'
|
||||
input.y:11.48: warning: a ';' might be needed at the end of action code
|
||||
input.y:11.48: warning: future versions of Bison will not add the ';'
|
||||
input.y:12.48: warning: a ';' might be needed at the end of action code
|
||||
input.y:12.48: warning: future versions of Bison will not add the ';'
|
||||
input.y:13.48: warning: a ';' might be needed at the end of action code
|
||||
input.y:13.48: warning: future versions of Bison will not add the ';'
|
||||
input.y:20.1: warning: a ';' might be needed at the end of action code
|
||||
input.y:20.1: warning: future versions of Bison will not add the ';'
|
||||
input.y:21.1: warning: a ';' might be needed at the end of action code
|
||||
input.y:21.1: warning: future versions of Bison will not add the ';'
|
||||
input.y:22.1: warning: a ';' might be needed at the end of action code
|
||||
input.y:22.1: warning: future versions of Bison will not add the ';'
|
||||
input.y:23.1: warning: a ';' might be needed at the end of action code
|
||||
input.y:23.1: warning: future versions of Bison will not add the ';'
|
||||
input.y:24.1: warning: a ';' might be needed at the end of action code
|
||||
input.y:24.1: warning: future versions of Bison will not add the ';'
|
||||
input.y:25.1: warning: a ';' might be needed at the end of action code
|
||||
input.y:25.1: warning: future versions of Bison will not add the ';'
|
||||
input.y:31.1: warning: a ';' might be needed at the end of action code
|
||||
input.y:31.1: warning: future versions of Bison will not add the ';'
|
||||
input.y:32.1: warning: a ';' might be needed at the end of action code
|
||||
input.y:32.1: warning: future versions of Bison will not add the ';'
|
||||
input.y:33.1: warning: a ';' might be needed at the end of action code
|
||||
input.y:33.1: warning: future versions of Bison will not add the ';'
|
||||
input.y:34.1: warning: a ';' might be needed at the end of action code
|
||||
input.y:34.1: warning: future versions of Bison will not add the ';'
|
||||
input.y:35.1: warning: a ';' might be needed at the end of action code
|
||||
input.y:35.1: warning: future versions of Bison will not add the ';'
|
||||
input.y:36.1: warning: a ';' might be needed at the end of action code
|
||||
input.y:36.1: warning: future versions of Bison will not add the ';'
|
||||
]])
|
||||
|
||||
AT_MATCHES_CHECK([input.c], [[/\* TEST:N:2 \*/ \}$]], [[3]])
|
||||
|
||||
@@ -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: integer out of range: '$1'
|
||||
input.y:3.13-14: 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: $$ 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.6-32: warning: type clash on default action: <bar> != <>
|
||||
input.y:6.6-8: warning: type clash on default action: <bar> != <>
|
||||
input.y:7.5: warning: empty rule for typed nonterminal, and no action
|
||||
@@ -669,9 +669,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: invalid character: '-'
|
||||
input.y:11.10-16: invalid identifier: '1NV4L1D'
|
||||
input.y:12.10: invalid character: '-'
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
@@ -708,8 +708,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: integer out of range: '999999999999999999999'
|
||||
too-large.y:10.24-44: integer out of range: '0xFFFFFFFFFFFFFFFFFFF'
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
@@ -749,11 +749,11 @@ 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: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
|
||||
]])
|
||||
|
||||
@@ -1200,9 +1200,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
|
||||
empty.y:3.8-4.0: warning: empty character literal
|
||||
empty.y:3.8-4.0: missing `'' at end of line
|
||||
empty.y:3.8-4.0: missing ''' at end of line
|
||||
empty.y:4.8: warning: empty character literal
|
||||
empty.y:4.8: missing `'' at end of file
|
||||
empty.y:4.8: missing ''' at end of file
|
||||
]])
|
||||
|
||||
AT_DATA([two.y],
|
||||
@@ -1215,9 +1215,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
|
||||
two.y:3.8-4.0: warning: extra characters in character literal
|
||||
two.y:3.8-4.0: missing `'' at end of line
|
||||
two.y:3.8-4.0: missing ''' at end of line
|
||||
two.y:4.8-10: warning: extra characters in character literal
|
||||
two.y:4.8-10: missing `'' at end of file
|
||||
two.y:4.8-10: missing ''' at end of file
|
||||
]])
|
||||
|
||||
AT_DATA([three.y],
|
||||
@@ -1230,9 +1230,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
|
||||
three.y:3.8-4.0: warning: extra characters in character literal
|
||||
three.y:3.8-4.0: missing `'' at end of line
|
||||
three.y:3.8-4.0: missing ''' at end of line
|
||||
three.y:4.8-11: warning: extra characters in character literal
|
||||
three.y:4.8-11: missing `'' at end of file
|
||||
three.y:4.8-11: missing ''' at end of file
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
@@ -1274,7 +1274,7 @@ input.y:3.27-36: invalid number after \-escape: Uffffffff
|
||||
input.y:3.26-37: warning: empty character literal
|
||||
input.y:3.40-49: invalid number after \-escape: U00000000
|
||||
input.y:3.39-50: warning: empty character literal
|
||||
input.y:4.9-10: invalid character after \-escape: ` '
|
||||
input.y:4.9-10: invalid character after \-escape: ' '
|
||||
input.y:4.8-11: warning: empty character literal
|
||||
input.y:4.14-15: invalid character after \-escape: A
|
||||
input.y:4.13-16: warning: empty character literal
|
||||
|
||||
@@ -255,16 +255,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: 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'
|
||||
test.y:51.51-60: warning: misleading reference: '$<ival>exp'
|
||||
test.y:42.1-3: warning: refers to: $exp at $$
|
||||
test.y:51.7: warning: possibly meant: $x, hiding $exp at $1
|
||||
test.y:51.41: warning: possibly meant: $r, hiding $exp at $4
|
||||
test.y:52.51-52: $l of `exp' has no declared type
|
||||
test.y:55.46-49: invalid reference: `$r12'
|
||||
test.y:52.51-52: $l of 'exp' has no declared type
|
||||
test.y:55.46-49: 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: invalid reference: '$expo'
|
||||
test.y:56.3-46: symbol not found in production: expo
|
||||
]])
|
||||
AT_CLEANUP
|
||||
@@ -280,7 +280,7 @@ foo: '1'
|
||||
foo.bar: '2'
|
||||
]])
|
||||
AT_BISON_CHECK([-o test.c test.y], 0, [],
|
||||
[[test.y:11.22-29: warning: misleading reference: `$foo.bar'
|
||||
[[test.y:11.22-29: warning: misleading reference: '$foo.bar'
|
||||
test.y:11.8-10: warning: refers to: $foo at $1
|
||||
test.y:11.12-18: warning: possibly meant: $[foo.bar] at $2
|
||||
]])
|
||||
@@ -356,43 +356,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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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
|
||||
]])
|
||||
@@ -422,7 +422,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: unexpected identifier in bracketed name: 'd'
|
||||
]])
|
||||
AT_CLEANUP
|
||||
|
||||
@@ -450,10 +450,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: 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: '+'
|
||||
]])
|
||||
AT_CLEANUP
|
||||
|
||||
@@ -466,7 +466,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: unexpected identifier in bracketed name: 's'
|
||||
]])
|
||||
AT_CLEANUP
|
||||
|
||||
@@ -513,37 +513,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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: invalid reference: '$<aa>[sym]'
|
||||
test.y:28.3-65: symbol not found in production: sym
|
||||
]])
|
||||
AT_CLEANUP
|
||||
@@ -561,11 +561,11 @@ start:
|
||||
.field: ;
|
||||
]])
|
||||
AT_BISON_CHECK([[test.y]], [[1]], [],
|
||||
[[test.y:4.12-18: invalid reference: `$.field'
|
||||
test.y:4.13: syntax error after `$', expecting integer, letter, `_', `@<:@', or `$'
|
||||
[[test.y:4.12-18: 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.13: syntax error after `@', expecting integer, letter, `_', `@<:@', or `$'
|
||||
test.y:5.12-18: invalid reference: '@.field'
|
||||
test.y:5.13: syntax error after '@', expecting integer, letter, '_', '@<:@', or '$'
|
||||
]])
|
||||
AT_DATA([[test.y]],
|
||||
[[
|
||||
@@ -576,7 +576,7 @@ start:
|
||||
;
|
||||
]])
|
||||
AT_BISON_CHECK([[test.y]], [[0]], [],
|
||||
[[test.y:4.9: warning: stray `$'
|
||||
test.y:5.9: warning: stray `@'
|
||||
[[test.y:4.9: warning: stray '$'
|
||||
test.y:5.9: warning: stray '@'
|
||||
]])
|
||||
AT_CLEANUP
|
||||
|
||||
@@ -72,7 +72,7 @@ AT_CHECK_OUTPUT([foo.y], [%defines %verbose %yacc],[],
|
||||
AT_CHECK_OUTPUT([foo.yy], [%defines %verbose %yacc],[],
|
||||
[y.output y.tab.c y.tab.h])
|
||||
|
||||
# Exercise %output and %file-prefix including deprecated `='
|
||||
# Exercise %output and %file-prefix including deprecated '='
|
||||
AT_CHECK_OUTPUT([foo.y], [%file-prefix "bar" %defines %verbose], [],
|
||||
[bar.output bar.tab.c bar.tab.h])
|
||||
AT_CHECK_OUTPUT([foo.y], [%output="bar.c" %defines %verbose %yacc],[],
|
||||
@@ -157,21 +157,21 @@ AT_CLEANUP
|
||||
|
||||
AT_CHECK_CONFLICTING_OUTPUT([foo.y],
|
||||
[], [--graph="foo.tab.c"],
|
||||
[foo.y: warning: conflicting outputs to file `foo.tab.c'
|
||||
[foo.y: warning: conflicting outputs to file 'foo.tab.c'
|
||||
])
|
||||
|
||||
AT_CHECK_CONFLICTING_OUTPUT([foo.y],
|
||||
[%defines "foo.output"], [-v],
|
||||
[foo.y: warning: conflicting outputs to file `foo.output'
|
||||
[foo.y: warning: conflicting outputs to file 'foo.output'
|
||||
])
|
||||
|
||||
AT_CHECK_CONFLICTING_OUTPUT([foo.y],
|
||||
[%skeleton "lalr1.cc" %defines], [--graph="location.hh"],
|
||||
[foo.y: warning: conflicting outputs to file `location.hh'
|
||||
[foo.y: warning: conflicting outputs to file 'location.hh'
|
||||
])
|
||||
|
||||
AT_CHECK_CONFLICTING_OUTPUT([foo.y], [], [-o foo.y],
|
||||
[foo.y: refusing to overwrite the input file `foo.y'
|
||||
[foo.y: refusing to overwrite the input file 'foo.y'
|
||||
], 1)
|
||||
|
||||
|
||||
@@ -213,7 +213,7 @@ AT_CLEANUP
|
||||
])
|
||||
|
||||
# Notice that the header file name here cannot contain
|
||||
# `"' since FILENAME in `#include "FILENAME"' cannot.
|
||||
# '"' since FILENAME in '#include "FILENAME"' cannot.
|
||||
AT_CHECK_OUTPUT_FILE_NAME([[`~!@#$%^&*()-=_+{}[]|\:;<>, .']])
|
||||
dnl Work around a bug in m4_expand that broke AT_SETUP in autoconf 2.62,
|
||||
dnl by using the definition from 2.63.
|
||||
|
||||
@@ -162,7 +162,7 @@ AT_CLEANUP
|
||||
AT_SETUP([Braces parsing])
|
||||
|
||||
AT_DATA([input.y],
|
||||
[[/* Bison used to swallow the character after `}'. */
|
||||
[[/* Bison used to swallow the character after '}'. */
|
||||
|
||||
%%
|
||||
exp: { tests = {{{{{{{{{{}}}}}}}}}}; };
|
||||
@@ -184,7 +184,7 @@ AT_CLEANUP
|
||||
AT_SETUP([Duplicate string])
|
||||
|
||||
AT_DATA([input.y],
|
||||
[[/* `Bison -v' used to dump core when two tokens are defined with the same
|
||||
[[/* 'Bison -v' used to dump core when two tokens are defined with the same
|
||||
string, as LE and GE below. */
|
||||
|
||||
%token NUM
|
||||
@@ -197,7 +197,7 @@ exp: '(' exp ')' | NUM ;
|
||||
]])
|
||||
|
||||
AT_BISON_CHECK([-v -o input.c input.y], 0, [],
|
||||
[[input.y:6.8-14: warning: symbol `"<="' used more than once as a literal string
|
||||
[[input.y:6.8-14: warning: symbol '"<="' used more than once as a literal string
|
||||
]])
|
||||
|
||||
AT_CLEANUP
|
||||
@@ -387,14 +387,14 @@ 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: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 %{...%}
|
||||
]])
|
||||
|
||||
@@ -428,7 +428,7 @@ AT_CLEANUP
|
||||
|
||||
AT_SETUP([Token definitions])
|
||||
|
||||
# Bison managed, when fed with `%token 'f' "f"' to #define 'f'!
|
||||
# Bison managed, when fed with '%token 'f' "f"' to #define 'f'!
|
||||
AT_DATA_GRAMMAR([input.y],
|
||||
[%{
|
||||
#include <stdlib.h>
|
||||
@@ -475,7 +475,7 @@ main (void)
|
||||
# the user specification is eliminated.
|
||||
AT_BISON_CHECK([-o input.c input.y], [[0]], [[]],
|
||||
[[input.y:22.8-14: warning: symbol SPECIAL redeclared
|
||||
input.y:22.8-63: warning: symbol `"\\'?\"\a\b\f\n\r\t\v\001\201\001\201??!"' used more than once as a literal string
|
||||
input.y:22.8-63: warning: symbol '"\\'?\"\a\b\f\n\r\t\v\001\201\001\201??!"' used more than once as a literal string
|
||||
]])
|
||||
AT_COMPILE([input])
|
||||
|
||||
@@ -524,7 +524,7 @@ AT_CLEANUP
|
||||
|
||||
# The generation of the reduction was once wrong in Bison, and made it
|
||||
# miss some reductions. In the following test case, the reduction on
|
||||
# `undef_id_tok' in state 1 was missing. This is stripped down from
|
||||
# 'undef_id_tok' in state 1 was missing. This is stripped down from
|
||||
# the actual web2c.y.
|
||||
|
||||
AT_SETUP([Web2c Report])
|
||||
@@ -686,7 +686,7 @@ AT_CLEANUP
|
||||
## Web2c Actions. ##
|
||||
## --------------- ##
|
||||
|
||||
# The generation of the mapping `state -> action' was once wrong in
|
||||
# The generation of the mapping 'state -> action' was once wrong in
|
||||
# extremely specific situations. web2c.y exhibits this situation.
|
||||
# Below is a stripped version of the grammar. It looks like one can
|
||||
# simplify it further, but just don't: it is tuned to exhibit a bug,
|
||||
@@ -1157,7 +1157,7 @@ AT_SETUP([[Extra lookahead sets in report]])
|
||||
# state's one item that (1) is associated with the same rule as the reduction
|
||||
# and (2) has its dot at the end of its RHS. Previously, Bison also
|
||||
# erroneously printed the lookahead set next to all of the state's other items
|
||||
# associated with the same rule. This bug affected only the `.output' file and
|
||||
# associated with the same rule. This bug affected only the '.output' file and
|
||||
# not the generated parser source code.
|
||||
|
||||
AT_DATA([[input.y]],
|
||||
|
||||
Reference in New Issue
Block a user