]> 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 c1a53276d832548dc4923d2c3b90e4aea6284d24..697f52f054a73058ae287624c6fdf6ff9f757d46 100644 (file)
@@ -1,12 +1,13 @@
 /* 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 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
-   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,
    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"
@@ -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.  */
-char *last_string;
+static char *last_string;
 
 void
 gram_scanner_last_string_free (void)
@@ -156,16 +154,14 @@ splice     (\\[ \f\t\v]*\n)*
   `----------------------------*/
 <INITIAL>
 {
-  "%after-header"                   return PERCENT_AFTER_HEADER;
-  "%before-header"                  return PERCENT_BEFORE_HEADER;
   "%binary"                        return PERCENT_NONASSOC;
+  "%code"                           return PERCENT_CODE;
   "%debug"                         return PERCENT_DEBUG;
   "%default"[-_]"prec"             return PERCENT_DEFAULT_PREC;
   "%define"                        return PERCENT_DEFINE;
   "%defines"                       return PERCENT_DEFINES;
   "%destructor"                            return PERCENT_DESTRUCTOR;
   "%dprec"                         return PERCENT_DPREC;
-  "%end-header"                     return PERCENT_END_HEADER;
   "%error"[-_]"verbose"            return PERCENT_ERROR_VERBOSE;
   "%expect"                        return PERCENT_EXPECT;
   "%expect"[-_]"rr"                return PERCENT_EXPECT_RR;
@@ -173,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;
+  "%language"                      return PERCENT_LANGUAGE;
   "%left"                          return PERCENT_LEFT;
   "%lex-param"                     return PERCENT_LEX_PARAM;
   "%locations"                     return PERCENT_LOCATIONS;
@@ -188,13 +185,10 @@ splice     (\\[ \f\t\v]*\n)*
   "%prec"                          return PERCENT_PREC;
   "%printer"                       return PERCENT_PRINTER;
   "%pure"[-_]"parser"              return PERCENT_PURE_PARSER;
-  "%push"[-_]"parser"              return PERCENT_PUSH_PARSER;
   "%require"                       return PERCENT_REQUIRE;
   "%right"                         return PERCENT_RIGHT;
   "%skeleton"                      return PERCENT_SKELETON;
   "%start"                         return PERCENT_START;
-  "%start-header"                   return PERCENT_START_HEADER;
-  "%symbol-default"                 return PERCENT_SYMBOL_DEFAULT;
   "%term"                          return PERCENT_TOKEN;
   "%token"                         return PERCENT_TOKEN;
   "%token"[-_]"table"              return PERCENT_TOKEN_TABLE;
@@ -210,6 +204,8 @@ splice       (\\[ \f\t\v]*\n)*
   "="                     return EQUAL;
   "|"                     return PIPE;
   ";"                     return SEMICOLON;
+  "<*>"                   return TYPE_TAG_ANY;
+  "<>"                    return TYPE_TAG_NONE;
 
   {id} {
     val->uniqstr = uniqstr_new (yytext);
@@ -522,7 +518,7 @@ splice       (\\[ \f\t\v]*\n)*
       {
        STRING_FINISH;
        loc->start = code_start;
-       val->chars = last_string;
+       val->code = last_string;
        BEGIN INITIAL;
        return BRACED_CODE;
       }
@@ -536,7 +532,7 @@ splice       (\\[ \f\t\v]*\n)*
     unexpected_eof (code_start, "}");
     STRING_FINISH;
     loc->start = code_start;
-    val->chars = last_string;
+    val->code = last_string;
     BEGIN INITIAL;
     return BRACED_CODE;
   }
@@ -799,5 +795,5 @@ gram_scanner_free (void)
 {
   obstack_free (&obstack_for_string, 0);
   /* Reclaim Flex's buffers.  */
-  yy_delete_buffer (YY_CURRENT_BUFFER);
+  yylex_destroy ();
 }