]> git.saurik.com Git - bison.git/blobdiff - src/scan-skel.l
Avoid capturing variables too easily.
[bison.git] / src / scan-skel.l
index 5f37fb2c43b873f7d4c363d671de85e7f44d5a91..b315951cacb85e936dcd40ab3e1801b8e880c9a9 100644 (file)
@@ -1,24 +1,22 @@
 /* Scan Bison Skeletons.                                       -*- C -*-
 
 /* Scan Bison Skeletons.                                       -*- C -*-
 
-   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
+   Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software
    Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
    Foundation, Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
-   Bison is free software; you can redistribute it and/or modify it
-   under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2, or (at your option)
-   any later version.
+   This program is free software: you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation, either version 3 of the License, or
+   (at your option) any later version.
 
 
-   Bison is distributed in the hope that it will be useful, but
-   WITHOUT ANY WARRANTY; without even the implied warranty of
-   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-   General Public License for more details.
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
 
    You should have received a copy of the GNU General Public License
-   along with Bison; see the file COPYING.  If not, write to the Free
-   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
-   02110-1301, USA.  */
+   along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
 
 %option nodefault noyywrap nounput never-interactive debug
 %option prefix="skel_" outfile="lex.yy.c"
 
 %option nodefault noyywrap nounput never-interactive debug
 %option prefix="skel_" outfile="lex.yy.c"
 #define skel_wrap() 1
 
 #define FLEX_PREFIX(Id) skel_ ## Id
 #define skel_wrap() 1
 
 #define FLEX_PREFIX(Id) skel_ ## Id
-#include "flex-scanner.h"
+#include <src/flex-scanner.h>
 
 #include <dirname.h>
 #include <error.h>
 #include <quotearg.h>
 
 
 #include <dirname.h>
 #include <error.h>
 #include <quotearg.h>
 
-#include "complain.h"
-#include "getargs.h"
-#include "files.h"
-#include "scan-skel.h"
+#include <src/complain.h>
+#include <src/getargs.h>
+#include <src/files.h>
+#include <src/scan-skel.h>
 
 #define YY_DECL static int skel_lex (void)
 YY_DECL;
 
 #define YY_DECL static int skel_lex (void)
 YY_DECL;
@@ -72,9 +70,11 @@ static void fail_for_invalid_at (char const *at);
   char *at_directive_argv[AT_DIRECTIVE_ARGC_MAX];
 %}
 
   char *at_directive_argv[AT_DIRECTIVE_ARGC_MAX];
 %}
 
-"@@"      fputc ('@', yyout);
-"@{"      fputc ('[', yyout);
-"@}"      fputc (']', yyout);
+"@@" fputc ('@', yyout);
+"@{" fputc ('[', yyout);
+"@}" fputc (']', yyout);
+"@`" /* Emtpy.  Used by b4_cat in ../data/bison.m4.  */
+@\n  /* Likewise.  */
 
 "@oline@"  fprintf (yyout, "%d", out_lineno + 1);
 "@ofile@"  QPUTS (outname);
 
 "@oline@"  fprintf (yyout, "%d", out_lineno + 1);
 "@ofile@"  QPUTS (outname);
@@ -89,7 +89,7 @@ static void fail_for_invalid_at (char const *at);
 }
 
   /* This pattern must not match more than the previous @ patterns. */
 }
 
   /* 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;
 
 \n        out_lineno++; ECHO;
 [^@\n]+           ECHO;
 
@@ -110,6 +110,7 @@ static void fail_for_invalid_at (char const *at);
   "@}" { obstack_1grow (&obstack_for_string, ']'); }
   "@`" /* Emtpy.  Useful for starting an argument
           that begins with whitespace. */
   "@}" { obstack_1grow (&obstack_for_string, ']'); }
   "@`" /* Emtpy.  Useful for starting an argument
           that begins with whitespace. */
+  @\n  /* Empty.  */
 
   @[,)] {
     if (at_directive_argc >= AT_DIRECTIVE_ARGC_MAX)
 
   @[,)] {
     if (at_directive_argc >= AT_DIRECTIVE_ARGC_MAX)
@@ -199,21 +200,21 @@ void at_directive_perform (int at_directive_argc,
         }
       switch (at_directive_argc)
         {
         }
       switch (at_directive_argc)
         {
-          case 1:
+          case 2:
             func (_(at_directive_argv[1]));
             break;
             func (_(at_directive_argv[1]));
             break;
-          case 2:
+          case 3:
             func (_(at_directive_argv[1]), at_directive_argv[2]);
             break;
             func (_(at_directive_argv[1]), at_directive_argv[2]);
             break;
-          case 3:
+          case 4:
             func (_(at_directive_argv[1]), at_directive_argv[2],
                   at_directive_argv[3]);
             break;
             func (_(at_directive_argv[1]), at_directive_argv[2],
                   at_directive_argv[3]);
             break;
-          case 4:
+          case 5:
             func (_(at_directive_argv[1]), at_directive_argv[2],
                   at_directive_argv[3], at_directive_argv[4]);
             break;
             func (_(at_directive_argv[1]), at_directive_argv[2],
                   at_directive_argv[3], at_directive_argv[4]);
             break;
-          case 5:
+          case 6:
             func (_(at_directive_argv[1]), at_directive_argv[2],
                   at_directive_argv[3], at_directive_argv[4],
                   at_directive_argv[5]);
             func (_(at_directive_argv[1]), at_directive_argv[2],
                   at_directive_argv[3], at_directive_argv[4],
                   at_directive_argv[5]);
@@ -242,21 +243,21 @@ void at_directive_perform (int at_directive_argc,
       boundary_set_from_string (&loc.end, at_directive_argv[2]);
       switch (at_directive_argc)
         {
       boundary_set_from_string (&loc.end, at_directive_argv[2]);
       switch (at_directive_argc)
         {
-          case 3:
+          case 4:
             func (loc, _(at_directive_argv[3]));
             break;
             func (loc, _(at_directive_argv[3]));
             break;
-          case 4:
+          case 5:
             func (loc, _(at_directive_argv[3]), at_directive_argv[4]);
             break;
             func (loc, _(at_directive_argv[3]), at_directive_argv[4]);
             break;
-          case 5:
+          case 6:
             func (loc, _(at_directive_argv[3]), at_directive_argv[4],
                   at_directive_argv[5]);
             break;
             func (loc, _(at_directive_argv[3]), at_directive_argv[4],
                   at_directive_argv[5]);
             break;
-          case 6:
+          case 7:
             func (loc, _(at_directive_argv[3]), at_directive_argv[4],
                   at_directive_argv[5], at_directive_argv[6]);
             break;
             func (loc, _(at_directive_argv[3]), at_directive_argv[4],
                   at_directive_argv[5], at_directive_argv[6]);
             break;
-          case 7:
+          case 8:
             func (loc, _(at_directive_argv[3]), at_directive_argv[4],
                   at_directive_argv[5], at_directive_argv[6],
                   at_directive_argv[7]);
             func (loc, _(at_directive_argv[3]), at_directive_argv[4],
                   at_directive_argv[5], at_directive_argv[6],
                   at_directive_argv[7]);