Factor %FLAG at scan level.

* src/parse-gram.y (PERCENT_DEBUG, PERCENT_ERROR_VERBOSE): Token
	definitions and associated rules, replaced by....
	(PERCENT_FLAG): this new token type, and rule.
	* src/scan-gram.l (RETURN_PERCENT_FLAG): New.
	Use it for %debug and %error-verbose.
This commit is contained in:
Akim Demaille
2009-04-03 06:50:06 +02:00
parent b19ebeb335
commit ba061fa6f2
3 changed files with 26 additions and 13 deletions

View File

@@ -1,3 +1,12 @@
2009-04-03 Akim Demaille <demaille@gostai.com>
Factor %FLAG at scan level.
* src/parse-gram.y (PERCENT_DEBUG, PERCENT_ERROR_VERBOSE): Token
definitions and associated rules, replaced by....
(PERCENT_FLAG): this new token type, and rule.
* src/scan-gram.l (RETURN_PERCENT_FLAG): New.
Use it for %debug and %error-verbose.
2009-04-03 Akim Demaille <demaille@gostai.com>
Regen.

View File

@@ -128,13 +128,13 @@ static int current_prec = 0;
%token
PERCENT_CODE "%code"
PERCENT_DEBUG "%debug"
PERCENT_DEFAULT_PREC "%default-prec"
PERCENT_DEFINE "%define"
PERCENT_DEFINES "%defines"
PERCENT_ERROR_VERBOSE "%error-verbose"
PERCENT_EXPECT "%expect"
PERCENT_EXPECT_RR "%expect-rr"
PERCENT_FLAG "%<flag>"
PERCENT_FILE_PREFIX "%file-prefix"
PERCENT_GLR_PARSER "%glr-parser"
PERCENT_INITIAL_ACTION "%initial-action"
@@ -183,10 +183,11 @@ static int current_prec = 0;
%printer { fprintf (stderr, "{\n%s\n}", $$); }
braceless content.opt "{...}" "%{...%}" EPILOGUE
%type <uniqstr> TAG ID ID_COLON variable
%printer { fprintf (stderr, "<%s>", $$); } TAG
%type <uniqstr> TAG ID ID_COLON PERCENT_FLAG variable
%printer { fputs ($$, stderr); } ID variable
%printer { fprintf (stderr, "%s:", $$); } ID_COLON
%printer { fprintf (stderr, "%%%s", $$); } PERCENT_FLAG
%printer { fprintf (stderr, "<%s>", $$); } TAG
%type <integer> INT
%printer { fprintf (stderr, "%d", $$); } INT
@@ -225,9 +226,9 @@ prologue_declaration:
plain_code.code, @1);
code_scanner_last_string_free ();
}
| "%debug"
| "%<flag>"
{
muscle_percent_define_insert ("debug", @$, "");
muscle_percent_define_insert ($1, @1, "");
}
| "%define" variable content.opt
{
@@ -239,10 +240,6 @@ prologue_declaration:
defines_flag = true;
spec_defines_file = xstrdup ($2);
}
| "%error-verbose"
{
muscle_percent_define_insert ("error_verbose", @$, "");
}
| "%expect" INT { expected_sr_conflicts = $2; }
| "%expect-rr" INT { expected_rr_conflicts = $2; }
| "%file-prefix" STRING { spec_file_prefix = $2; }

View File

@@ -1,7 +1,7 @@
/* Bison Grammar Scanner -*- C -*-
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation,
Inc.
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
Free Software Foundation, Inc.
This file is part of Bison, the GNU Compiler Compiler.
@@ -55,6 +55,13 @@ static boundary scanner_cursor;
static size_t no_cr_read (FILE *, char *, size_t);
#define YY_INPUT(buf, result, size) ((result) = no_cr_read (yyin, buf, size))
#define RETURN_PERCENT_FLAG(Value) \
do { \
val->uniqstr = uniqstr_new (Value); \
return PERCENT_FLAG; \
} while (0)
/* A string representing the most recently saved token. */
static char *last_string;
@@ -168,13 +175,13 @@ splice (\\[ \f\t\v]*\n)*
{
"%binary" return PERCENT_NONASSOC;
"%code" return PERCENT_CODE;
"%debug" return PERCENT_DEBUG;
"%debug" RETURN_PERCENT_FLAG("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;
"%error"[-_]"verbose" RETURN_PERCENT_FLAG("error_verbose");
"%expect" return PERCENT_EXPECT;
"%expect"[-_]"rr" return PERCENT_EXPECT_RR;
"%file-prefix" return PERCENT_FILE_PREFIX;