X-Git-Url: https://git.saurik.com/bison.git/blobdiff_plain/3be03b13e5fd9cc9ed119f26e429e6ab1dd3568d..e2c2f696504e69ad69beb700c5e37b0ff6d0b81b:/src/scan-gram.l diff --git a/src/scan-gram.l b/src/scan-gram.l index 6df72afe..7ea0d685 100644 --- a/src/scan-gram.l +++ b/src/scan-gram.l @@ -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, 2008 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, @@ -15,10 +16,7 @@ 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 . */ %option debug nodefault nounput noyywrap never-interactive %option prefix="gram_" outfile="lex.yy.c" @@ -30,19 +28,19 @@ #define gram_wrap() 1 #define FLEX_PREFIX(Id) gram_ ## Id -#include "flex-scanner.h" +#include -#include "complain.h" -#include "files.h" -#include "gram.h" -#include "quotearg.h" -#include "reader.h" -#include "uniqstr.h" +#include +#include +#include +#include +#include +#include #include #include -#include "scan-gram.h" +#include #define YY_DECL GRAM_LEX_DECL @@ -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,51 +154,49 @@ splice (\\[ \f\t\v]*\n)* `----------------------------*/ { - "%after-header" return PERCENT_AFTER_HEADER; - "%before-header" return PERCENT_BEFORE_HEADER; - "%binary" return PERCENT_NONASSOC; - "%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; - "%file-prefix" return PERCENT_FILE_PREFIX; + "%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; + "%error"[-_]"verbose" return PERCENT_ERROR_VERBOSE; + "%expect" return PERCENT_EXPECT; + "%expect"[-_]"rr" return PERCENT_EXPECT_RR; + "%file-prefix" return PERCENT_FILE_PREFIX; "%fixed"[-_]"output"[-_]"files" return PERCENT_YACC; - "%initial-action" return PERCENT_INITIAL_ACTION; - "%glr-parser" return PERCENT_GLR_PARSER; - "%left" return PERCENT_LEFT; - "%lex-param" return PERCENT_LEX_PARAM; - "%locations" return PERCENT_LOCATIONS; - "%merge" return PERCENT_MERGE; - "%name"[-_]"prefix" return PERCENT_NAME_PREFIX; - "%no"[-_]"default"[-_]"prec" return PERCENT_NO_DEFAULT_PREC; - "%no"[-_]"lines" return PERCENT_NO_LINES; - "%nonassoc" return PERCENT_NONASSOC; - "%nondeterministic-parser" return PERCENT_NONDETERMINISTIC_PARSER; - "%nterm" return PERCENT_NTERM; - "%output" return PERCENT_OUTPUT; - "%parse-param" return PERCENT_PARSE_PARAM; - "%prec" return PERCENT_PREC; - "%printer" return PERCENT_PRINTER; - "%pure"[-_]"parser" return PERCENT_PURE_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; - "%type" return PERCENT_TYPE; - "%union" return PERCENT_UNION; - "%verbose" return PERCENT_VERBOSE; - "%yacc" 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; + "%merge" return PERCENT_MERGE; + "%name"[-_]"prefix" return PERCENT_NAME_PREFIX; + "%no"[-_]"default"[-_]"prec" return PERCENT_NO_DEFAULT_PREC; + "%no"[-_]"lines" return PERCENT_NO_LINES; + "%nonassoc" return PERCENT_NONASSOC; + "%nondeterministic-parser" return PERCENT_NONDETERMINISTIC_PARSER; + "%nterm" return PERCENT_NTERM; + "%output" return PERCENT_OUTPUT; + "%parse-param" return PERCENT_PARSE_PARAM; + "%prec" return PERCENT_PREC; + "%precedence" return PERCENT_PRECEDENCE; + "%printer" return PERCENT_PRINTER; + "%pure"[-_]"parser" return PERCENT_PURE_PARSER; + "%require" return PERCENT_REQUIRE; + "%right" return PERCENT_RIGHT; + "%skeleton" return PERCENT_SKELETON; + "%start" return PERCENT_START; + "%term" return PERCENT_TOKEN; + "%token" return PERCENT_TOKEN; + "%token"[-_]"table" return PERCENT_TOKEN_TABLE; + "%type" return PERCENT_TYPE; + "%union" return PERCENT_UNION; + "%verbose" return PERCENT_VERBOSE; + "%yacc" return PERCENT_YACC; {directive} { complain_at (*loc, _("invalid directive: %s"), quote (yytext)); @@ -209,6 +205,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); @@ -521,7 +519,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; } @@ -535,7 +533,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; } @@ -798,5 +796,5 @@ gram_scanner_free (void) { obstack_free (&obstack_for_string, 0); /* Reclaim Flex's buffers. */ - yy_delete_buffer (YY_CURRENT_BUFFER); + yylex_destroy (); }