]> git.saurik.com Git - bison.git/blobdiff - src/scan-gram.l
2007-11-08 Paolo Bonzini <bonzini@gnu.org>
[bison.git] / src / scan-gram.l
index 5e595cf6f8b370a994b53638b96e20c463a44479..697f52f054a73058ae287624c6fdf6ff9f757d46 100644 (file)
@@ -1,12 +1,13 @@
 /* Bison Grammar Scanner                             -*- C -*-
 
 /* Bison Grammar Scanner                             -*- C -*-
 
-   Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+   Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation,
+   Inc.
 
    This file is part of Bison, the GNU Compiler Compiler.
 
 
    This file is part of Bison, the GNU Compiler Compiler.
 
-   This program is free software; you can redistribute it and/or modify
+   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
    it under the terms of the GNU General Public License as published by
-   the Free Software Foundation; either version 2 of the License, or
+   the Free Software Foundation, either version 3 of the License, or
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    (at your option) any later version.
 
    This program is distributed in the hope that it will be useful,
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
    GNU General Public License for more details.
 
    You should have received a copy of the GNU General Public License
-   along with this program; 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 debug nodefault nounput noyywrap never-interactive
 %option prefix="gram_" outfile="lex.yy.c"
 
 %option debug nodefault nounput noyywrap never-interactive
 %option prefix="gram_" outfile="lex.yy.c"
@@ -58,7 +56,7 @@ static size_t no_cr_read (FILE *, char *, size_t);
 #define YY_INPUT(buf, result, size) ((result) = no_cr_read (yyin, buf, size))
 
 /* A string representing the most recently saved token.  */
 #define YY_INPUT(buf, result, size) ((result) = no_cr_read (yyin, buf, size))
 
 /* A string representing the most recently saved token.  */
-char *last_string;
+static char *last_string;
 
 void
 gram_scanner_last_string_free (void)
 
 void
 gram_scanner_last_string_free (void)
@@ -158,7 +156,6 @@ splice       (\\[ \f\t\v]*\n)*
 {
   "%binary"                        return PERCENT_NONASSOC;
   "%code"                           return PERCENT_CODE;
 {
   "%binary"                        return PERCENT_NONASSOC;
   "%code"                           return PERCENT_CODE;
-  "%code-top"                       return PERCENT_CODE_TOP;
   "%debug"                         return PERCENT_DEBUG;
   "%default"[-_]"prec"             return PERCENT_DEFAULT_PREC;
   "%define"                        return PERCENT_DEFINE;
   "%debug"                         return PERCENT_DEBUG;
   "%default"[-_]"prec"             return PERCENT_DEFAULT_PREC;
   "%define"                        return PERCENT_DEFINE;
@@ -172,6 +169,7 @@ splice       (\\[ \f\t\v]*\n)*
   "%fixed"[-_]"output"[-_]"files"   return PERCENT_YACC;
   "%initial-action"                return PERCENT_INITIAL_ACTION;
   "%glr-parser"                    return PERCENT_GLR_PARSER;
   "%fixed"[-_]"output"[-_]"files"   return PERCENT_YACC;
   "%initial-action"                return PERCENT_INITIAL_ACTION;
   "%glr-parser"                    return PERCENT_GLR_PARSER;
+  "%language"                      return PERCENT_LANGUAGE;
   "%left"                          return PERCENT_LEFT;
   "%lex-param"                     return PERCENT_LEX_PARAM;
   "%locations"                     return PERCENT_LOCATIONS;
   "%left"                          return PERCENT_LEFT;
   "%lex-param"                     return PERCENT_LEX_PARAM;
   "%locations"                     return PERCENT_LOCATIONS;
@@ -186,11 +184,8 @@ splice      (\\[ \f\t\v]*\n)*
   "%parse-param"                   return PERCENT_PARSE_PARAM;
   "%prec"                          return PERCENT_PREC;
   "%printer"                       return PERCENT_PRINTER;
   "%parse-param"                   return PERCENT_PARSE_PARAM;
   "%prec"                          return PERCENT_PREC;
   "%printer"                       return PERCENT_PRINTER;
-  "%provides"                       return PERCENT_PROVIDES;
   "%pure"[-_]"parser"              return PERCENT_PURE_PARSER;
   "%pure"[-_]"parser"              return PERCENT_PURE_PARSER;
-  "%push"[-_]"parser"              return PERCENT_PUSH_PARSER;
   "%require"                       return PERCENT_REQUIRE;
   "%require"                       return PERCENT_REQUIRE;
-  "%requires"                       return PERCENT_REQUIRES;
   "%right"                         return PERCENT_RIGHT;
   "%skeleton"                      return PERCENT_SKELETON;
   "%start"                         return PERCENT_START;
   "%right"                         return PERCENT_RIGHT;
   "%skeleton"                      return PERCENT_SKELETON;
   "%start"                         return PERCENT_START;
@@ -210,7 +205,7 @@ splice       (\\[ \f\t\v]*\n)*
   "|"                     return PIPE;
   ";"                     return SEMICOLON;
   "<*>"                   return TYPE_TAG_ANY;
   "|"                     return PIPE;
   ";"                     return SEMICOLON;
   "<*>"                   return TYPE_TAG_ANY;
-  "<!>"                   return TYPE_TAG_NONE;
+  "<>"                    return TYPE_TAG_NONE;
 
   {id} {
     val->uniqstr = uniqstr_new (yytext);
 
   {id} {
     val->uniqstr = uniqstr_new (yytext);
@@ -523,7 +518,7 @@ splice       (\\[ \f\t\v]*\n)*
       {
        STRING_FINISH;
        loc->start = code_start;
       {
        STRING_FINISH;
        loc->start = code_start;
-       val->chars = last_string;
+       val->code = last_string;
        BEGIN INITIAL;
        return BRACED_CODE;
       }
        BEGIN INITIAL;
        return BRACED_CODE;
       }
@@ -537,7 +532,7 @@ splice       (\\[ \f\t\v]*\n)*
     unexpected_eof (code_start, "}");
     STRING_FINISH;
     loc->start = code_start;
     unexpected_eof (code_start, "}");
     STRING_FINISH;
     loc->start = code_start;
-    val->chars = last_string;
+    val->code = last_string;
     BEGIN INITIAL;
     return BRACED_CODE;
   }
     BEGIN INITIAL;
     return BRACED_CODE;
   }
@@ -800,5 +795,5 @@ gram_scanner_free (void)
 {
   obstack_free (&obstack_for_string, 0);
   /* Reclaim Flex's buffers.  */
 {
   obstack_free (&obstack_for_string, 0);
   /* Reclaim Flex's buffers.  */
-  yy_delete_buffer (YY_CURRENT_BUFFER);
+  yylex_destroy ();
 }
 }