/* Scan Bison Skeletons. -*- C -*-
- Copyright (C) 2001-2012 Free Software Foundation, Inc.
+ Copyright (C) 2001-2015 Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
"@@" fputc ('@', yyout);
"@{" fputc ('[', yyout);
"@}" fputc (']', yyout);
-"@`" continue; /* Used by b4_cat in ../data/bison.m4. */
+"@'" continue; /* Used by b4_cat in ../data/bison.m4. */
@\n continue;
"@oline@" fprintf (yyout, "%d", out_lineno + 1);
"@output(" at_init (&argc, argv, &at_ptr, &at_output);
/* This pattern must not match more than the previous @ patterns. */
-@[^@{}`(\n]* fail_for_invalid_at (yytext);
+@[^@{}\'(\n]* fail_for_invalid_at (yytext);
\n out_lineno++; ECHO;
[^@\n]+ ECHO;
"@@" obstack_1grow (&obstack_for_string, '@');
"@{" obstack_1grow (&obstack_for_string, '[');
"@}" obstack_1grow (&obstack_for_string, ']');
- "@`" continue; /* For starting an argument that begins with whitespace. */
+ "@'" continue; /* For starting an argument that begins with whitespace. */
@\n continue;
@[,)] {
/* compare with values issued from b4_error */
if (STREQ (arg, "complain"))
return complaint;
+ else if (STREQ (arg, "deprecated"))
+ return Wdeprecated;
else if (STREQ (arg, "fatal"))
return fatal;
else if (STREQ (arg, "note"))
- return silent;
+ return silent | complaint | no_caret;
else if (STREQ (arg, "warn"))
return Wother;
else
- aver (false);
+ abort ();
}
static void
indent += SUB_INDENT;
else
indent = 0;
- complain_args (locp, w, &indent, argc - 3, argv + 3);
+ complain_args (locp, w, &indent, argc - 4, argv + 4);
if (w & silent)
indent -= SUB_INDENT;
}
xfclose (yyout);
}
*out_namep = xstrdup (argv[1]);
- output_file_name_check (out_namep);
- yyout = xfopen (*out_namep, "w");
+ output_file_name_check (out_namep, true);
+ /* If there were errors, do not generate the output. */
+ yyout = xfopen (complaint_status ? "/dev/null" : *out_namep, "w");
*out_linenop = 1;
}
- static void
+static void
fail_for_at_directive_too_few_args (char const *at_directive_name)
{
complain (NULL, fatal, _("too few arguments for %s directive in skeleton"),