diff options
Diffstat (limited to 'src/interfaces/ecpg')
-rw-r--r-- | src/interfaces/ecpg/preproc/Makefile | 7 | ||||
-rw-r--r-- | src/interfaces/ecpg/preproc/ecpg.trailer | 8 | ||||
-rw-r--r-- | src/interfaces/ecpg/preproc/pgc.l | 14 |
3 files changed, 15 insertions, 14 deletions
diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile index 1ecc4053dae..00f14c69c5b 100644 --- a/src/interfaces/ecpg/preproc/Makefile +++ b/src/interfaces/ecpg/preproc/Makefile @@ -26,7 +26,7 @@ override CPPFLAGS := -I../include -I$(top_srcdir)/src/interfaces/ecpg/include \ override CFLAGS += $(PTHREAD_CFLAGS) -DECPG_COMPILE -OBJS= preproc.o type.o ecpg.o output.o parser.o \ +OBJS= preproc.o pgc.o type.o ecpg.o output.o parser.o \ keywords.o c_keywords.o ecpg_keywords.o kwlookup.o ../ecpglib/typename.o descriptor.o variable.o \ $(WIN32RES) @@ -44,9 +44,6 @@ ecpg: $(OBJS) | submake-libpgport ../ecpglib/typename.o: ../ecpglib/typename.c $(MAKE) -C $(dir $@) $(notdir $@) -# pgc is compiled as part of preproc -preproc.o: pgc.c - preproc.h: preproc.c ; preproc.c: BISONFLAGS += -d @@ -54,7 +51,7 @@ preproc.y: ../../../backend/parser/gram.y parse.pl ecpg.addons ecpg.header ecpg. $(PERL) $(srcdir)/parse.pl $(srcdir) < $< > $@ $(PERL) $(srcdir)/check_rules.pl $(srcdir) $< -ecpg_keywords.o c_keywords.o keywords.o preproc.o parser.o: preproc.h +ecpg_keywords.o c_keywords.o keywords.o preproc.o pgc.o parser.o: preproc.h kwlookup.c: % : $(top_srcdir)/src/backend/parser/% rm -f $@ && $(LN_S) $< . diff --git a/src/interfaces/ecpg/preproc/ecpg.trailer b/src/interfaces/ecpg/preproc/ecpg.trailer index 16359a309b7..de0df7440f0 100644 --- a/src/interfaces/ecpg/preproc/ecpg.trailer +++ b/src/interfaces/ecpg/preproc/ecpg.trailer @@ -1916,11 +1916,3 @@ void parser_init(void) { /* This function is empty. It only exists for compatibility with the backend parser right now. */ } - -/* - * Must undefine base_yylex before including pgc.c, since we want it - * to create the function base_yylex not filtered_base_yylex. - */ -#undef base_yylex - -#include "pgc.c" diff --git a/src/interfaces/ecpg/preproc/pgc.l b/src/interfaces/ecpg/preproc/pgc.l index 0453409d373..e9a7859cc0f 100644 --- a/src/interfaces/ecpg/preproc/pgc.l +++ b/src/interfaces/ecpg/preproc/pgc.l @@ -1,4 +1,4 @@ -%{ +%top{ /*------------------------------------------------------------------------- * * pgc.l @@ -23,7 +23,19 @@ #include <limits.h> #include "extern.h" +#include "preproc.h" + +/* + * Change symbol names as expected by preproc.y. It'd be better to do this + * with %option prefix="base_yy", but that affects some other names that + * various files expect *not* to be prefixed with "base_". Cleaning it up + * is not worth the trouble right now. + */ +#define yylex base_yylex +#define yylval base_yylval +} +%{ extern YYSTYPE yylval; static int xcdepth = 0; /* depth of nesting in slash-star comments */ |