mirror of
https://git.savannah.gnu.org/git/bison.git
synced 2026-03-09 20:33:03 +00:00
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:
@@ -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>
|
2009-04-03 Akim Demaille <demaille@gostai.com>
|
||||||
|
|
||||||
Regen.
|
Regen.
|
||||||
|
|||||||
@@ -128,13 +128,13 @@ static int current_prec = 0;
|
|||||||
|
|
||||||
%token
|
%token
|
||||||
PERCENT_CODE "%code"
|
PERCENT_CODE "%code"
|
||||||
PERCENT_DEBUG "%debug"
|
|
||||||
PERCENT_DEFAULT_PREC "%default-prec"
|
PERCENT_DEFAULT_PREC "%default-prec"
|
||||||
PERCENT_DEFINE "%define"
|
PERCENT_DEFINE "%define"
|
||||||
PERCENT_DEFINES "%defines"
|
PERCENT_DEFINES "%defines"
|
||||||
PERCENT_ERROR_VERBOSE "%error-verbose"
|
PERCENT_ERROR_VERBOSE "%error-verbose"
|
||||||
PERCENT_EXPECT "%expect"
|
PERCENT_EXPECT "%expect"
|
||||||
PERCENT_EXPECT_RR "%expect-rr"
|
PERCENT_EXPECT_RR "%expect-rr"
|
||||||
|
PERCENT_FLAG "%<flag>"
|
||||||
PERCENT_FILE_PREFIX "%file-prefix"
|
PERCENT_FILE_PREFIX "%file-prefix"
|
||||||
PERCENT_GLR_PARSER "%glr-parser"
|
PERCENT_GLR_PARSER "%glr-parser"
|
||||||
PERCENT_INITIAL_ACTION "%initial-action"
|
PERCENT_INITIAL_ACTION "%initial-action"
|
||||||
@@ -183,10 +183,11 @@ static int current_prec = 0;
|
|||||||
%printer { fprintf (stderr, "{\n%s\n}", $$); }
|
%printer { fprintf (stderr, "{\n%s\n}", $$); }
|
||||||
braceless content.opt "{...}" "%{...%}" EPILOGUE
|
braceless content.opt "{...}" "%{...%}" EPILOGUE
|
||||||
|
|
||||||
%type <uniqstr> TAG ID ID_COLON variable
|
%type <uniqstr> TAG ID ID_COLON PERCENT_FLAG variable
|
||||||
%printer { fprintf (stderr, "<%s>", $$); } TAG
|
|
||||||
%printer { fputs ($$, stderr); } ID variable
|
%printer { fputs ($$, stderr); } ID variable
|
||||||
%printer { fprintf (stderr, "%s:", $$); } ID_COLON
|
%printer { fprintf (stderr, "%s:", $$); } ID_COLON
|
||||||
|
%printer { fprintf (stderr, "%%%s", $$); } PERCENT_FLAG
|
||||||
|
%printer { fprintf (stderr, "<%s>", $$); } TAG
|
||||||
|
|
||||||
%type <integer> INT
|
%type <integer> INT
|
||||||
%printer { fprintf (stderr, "%d", $$); } INT
|
%printer { fprintf (stderr, "%d", $$); } INT
|
||||||
@@ -225,9 +226,9 @@ prologue_declaration:
|
|||||||
plain_code.code, @1);
|
plain_code.code, @1);
|
||||||
code_scanner_last_string_free ();
|
code_scanner_last_string_free ();
|
||||||
}
|
}
|
||||||
| "%debug"
|
| "%<flag>"
|
||||||
{
|
{
|
||||||
muscle_percent_define_insert ("debug", @$, "");
|
muscle_percent_define_insert ($1, @1, "");
|
||||||
}
|
}
|
||||||
| "%define" variable content.opt
|
| "%define" variable content.opt
|
||||||
{
|
{
|
||||||
@@ -239,10 +240,6 @@ prologue_declaration:
|
|||||||
defines_flag = true;
|
defines_flag = true;
|
||||||
spec_defines_file = xstrdup ($2);
|
spec_defines_file = xstrdup ($2);
|
||||||
}
|
}
|
||||||
| "%error-verbose"
|
|
||||||
{
|
|
||||||
muscle_percent_define_insert ("error_verbose", @$, "");
|
|
||||||
}
|
|
||||||
| "%expect" INT { expected_sr_conflicts = $2; }
|
| "%expect" INT { expected_sr_conflicts = $2; }
|
||||||
| "%expect-rr" INT { expected_rr_conflicts = $2; }
|
| "%expect-rr" INT { expected_rr_conflicts = $2; }
|
||||||
| "%file-prefix" STRING { spec_file_prefix = $2; }
|
| "%file-prefix" STRING { spec_file_prefix = $2; }
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
/* Bison Grammar Scanner -*- C -*-
|
/* Bison Grammar Scanner -*- C -*-
|
||||||
|
|
||||||
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation,
|
Copyright (C) 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009
|
||||||
Inc.
|
Free Software Foundation, Inc.
|
||||||
|
|
||||||
This file is part of Bison, the GNU Compiler Compiler.
|
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);
|
static size_t no_cr_read (FILE *, char *, size_t);
|
||||||
#define YY_INPUT(buf, result, size) ((result) = no_cr_read (yyin, buf, size))
|
#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. */
|
/* A string representing the most recently saved token. */
|
||||||
static char *last_string;
|
static char *last_string;
|
||||||
|
|
||||||
@@ -168,13 +175,13 @@ splice (\\[ \f\t\v]*\n)*
|
|||||||
{
|
{
|
||||||
"%binary" return PERCENT_NONASSOC;
|
"%binary" return PERCENT_NONASSOC;
|
||||||
"%code" return PERCENT_CODE;
|
"%code" return PERCENT_CODE;
|
||||||
"%debug" return PERCENT_DEBUG;
|
"%debug" RETURN_PERCENT_FLAG("debug");
|
||||||
"%default"[-_]"prec" return PERCENT_DEFAULT_PREC;
|
"%default"[-_]"prec" return PERCENT_DEFAULT_PREC;
|
||||||
"%define" return PERCENT_DEFINE;
|
"%define" return PERCENT_DEFINE;
|
||||||
"%defines" return PERCENT_DEFINES;
|
"%defines" return PERCENT_DEFINES;
|
||||||
"%destructor" return PERCENT_DESTRUCTOR;
|
"%destructor" return PERCENT_DESTRUCTOR;
|
||||||
"%dprec" return PERCENT_DPREC;
|
"%dprec" return PERCENT_DPREC;
|
||||||
"%error"[-_]"verbose" return PERCENT_ERROR_VERBOSE;
|
"%error"[-_]"verbose" RETURN_PERCENT_FLAG("error_verbose");
|
||||||
"%expect" return PERCENT_EXPECT;
|
"%expect" return PERCENT_EXPECT;
|
||||||
"%expect"[-_]"rr" return PERCENT_EXPECT_RR;
|
"%expect"[-_]"rr" return PERCENT_EXPECT_RR;
|
||||||
"%file-prefix" return PERCENT_FILE_PREFIX;
|
"%file-prefix" return PERCENT_FILE_PREFIX;
|
||||||
|
|||||||
Reference in New Issue
Block a user