Use yy-remap.h in cp-name-parser.y
This changes cp-name-parser.y to use yy-remap.h, rather than its old manual approach. This required declaring parser_fprintf in cp-name-parser.y. parser-defs.h can't be included here because parser-defs.h declares a global "lexptr", which conflicts with the local one in cp-name-parser.y. This is only temporary, and will be cleaned up later in the series. gdb/ChangeLog 2018-06-01 Tom Tromey <tom@tromey.com> * cp-name-parser.y (parser_fprintf): Declare. (GDB_YY_REMAP_PREFIX): Define. Include yy-remap.h. Don't redefine yy* identifiers.
This commit is contained in:
parent
3513a6bb20
commit
55b6c98496
@ -1,3 +1,9 @@
|
||||
2018-06-01 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* cp-name-parser.y (parser_fprintf): Declare.
|
||||
(GDB_YY_REMAP_PREFIX): Define.
|
||||
Include yy-remap.h. Don't redefine yy* identifiers.
|
||||
|
||||
2018-06-01 Tom Tromey <tom@tromey.com>
|
||||
|
||||
* python/py-type.c (typy_legacy_template_argument): Update.
|
||||
|
@ -37,6 +37,14 @@
|
||||
#include "cp-support.h"
|
||||
#include "c-support.h"
|
||||
|
||||
/* Function used to avoid direct calls to fprintf
|
||||
in the code generated by the bison parser. */
|
||||
|
||||
extern void parser_fprintf (FILE *, const char *, ...) ATTRIBUTE_PRINTF (2, 3);
|
||||
|
||||
#define GDB_YY_REMAP_PREFIX cpname
|
||||
#include "yy-remap.h"
|
||||
|
||||
/* Bison does not make it easy to create a parser without global
|
||||
state, unfortunately. Here are all the global variables used
|
||||
in this parser. */
|
||||
@ -118,60 +126,6 @@ static struct demangle_component *d_binary (const char *,
|
||||
#define INT_SIGNED (1 << 4)
|
||||
#define INT_UNSIGNED (1 << 5)
|
||||
|
||||
/* Remap normal yacc parser interface names (yyparse, yylex, yyerror, etc),
|
||||
as well as gratuitiously global symbol names, so we can have multiple
|
||||
yacc generated parsers in gdb. Note that these are only the variables
|
||||
produced by yacc. If other parser generators (bison, byacc, etc) produce
|
||||
additional global names that conflict at link time, then those parser
|
||||
generators need to be fixed instead of adding those names to this list. */
|
||||
|
||||
#define yymaxdepth cpname_maxdepth
|
||||
#define yyparse cpname_parse
|
||||
#define yylex cpname_lex
|
||||
#define yyerror cpname_error
|
||||
#define yylval cpname_lval
|
||||
#define yychar cpname_char
|
||||
#define yydebug cpname_debug
|
||||
#define yypact cpname_pact
|
||||
#define yyr1 cpname_r1
|
||||
#define yyr2 cpname_r2
|
||||
#define yydef cpname_def
|
||||
#define yychk cpname_chk
|
||||
#define yypgo cpname_pgo
|
||||
#define yyact cpname_act
|
||||
#define yyexca cpname_exca
|
||||
#define yyerrflag cpname_errflag
|
||||
#define yynerrs cpname_nerrs
|
||||
#define yyps cpname_ps
|
||||
#define yypv cpname_pv
|
||||
#define yys cpname_s
|
||||
#define yy_yys cpname_yys
|
||||
#define yystate cpname_state
|
||||
#define yytmp cpname_tmp
|
||||
#define yyv cpname_v
|
||||
#define yy_yyv cpname_yyv
|
||||
#define yyval cpname_val
|
||||
#define yylloc cpname_lloc
|
||||
#define yyreds cpname_reds /* With YYDEBUG defined */
|
||||
#define yytoks cpname_toks /* With YYDEBUG defined */
|
||||
#define yyname cpname_name /* With YYDEBUG defined */
|
||||
#define yyrule cpname_rule /* With YYDEBUG defined */
|
||||
#define yylhs cpname_yylhs
|
||||
#define yylen cpname_yylen
|
||||
#define yydefred cpname_yydefred
|
||||
#define yydgoto cpname_yydgoto
|
||||
#define yysindex cpname_yysindex
|
||||
#define yyrindex cpname_yyrindex
|
||||
#define yygindex cpname_yygindex
|
||||
#define yytable cpname_yytable
|
||||
#define yycheck cpname_yycheck
|
||||
#define yyss cpname_yyss
|
||||
#define yysslim cpname_yysslim
|
||||
#define yyssp cpname_yyssp
|
||||
#define yystacksize cpname_yystacksize
|
||||
#define yyvs cpname_yyvs
|
||||
#define yyvsp cpname_yyvsp
|
||||
|
||||
int yyparse (void);
|
||||
static int yylex (void);
|
||||
static void yyerror (const char *);
|
||||
|
Loading…
Reference in New Issue
Block a user