Make all our flex and bison files use %option prefix or %name-prefix

(respectively) to rename yylex and related symbols.  Some were doing
it this way already, while others used not-too-reliable sed hacks in
the Makefiles.  It's all nice and consistent now.
This commit is contained in:
Tom Lane 2006-03-07 01:03:12 +00:00
parent 012abebab1
commit fb51ad3419
16 changed files with 65 additions and 69 deletions

View File

@ -1,4 +1,4 @@
# $PostgreSQL: pgsql/contrib/cube/Makefile,v 1.16 2006/02/27 12:54:38 petere Exp $
# $PostgreSQL: pgsql/contrib/cube/Makefile,v 1.17 2006/03/07 01:03:12 tgl Exp $
MODULE_big = cube
OBJS= cube.o cubeparse.o
@ -28,11 +28,13 @@ endif
# cubescan is compiled as part of cubeparse
cubeparse.o: cubescan.c
# See notes in src/backend/parser/Makefile about the following two rules
cubeparse.c: cubeparse.h ;
cubeparse.h: cubeparse.y
ifdef YACC
$(YACC) -d $(YFLAGS) -p cube_yy $<
$(YACC) -d $(YFLAGS) $<
mv -f y.tab.c cubeparse.c
mv -f y.tab.h cubeparse.h
else

View File

@ -10,10 +10,7 @@
#include "cubedata.h"
#undef yylex /* failure to redefine yylex will result in a call to the */
#define yylex cube_yylex /* wrong scanner when running inside the postgres backend */
extern int yylex(void); /* defined as cube_yylex in cubescan.l */
extern int cube_yylex(void);
static char *scanbuf;
static int scanbuflen;
@ -28,6 +25,8 @@ static NDBOX * write_point_as_box(char *s, int dim);
%}
/* BISON Declarations */
%name-prefix="cube_yy"
%token CUBEFLOAT O_PAREN C_PAREN O_BRACKET C_BRACKET COMMA
%start box

View File

@ -1,4 +1,4 @@
# $PostgreSQL: pgsql/contrib/seg/Makefile,v 1.15 2006/02/27 12:54:39 petere Exp $
# $PostgreSQL: pgsql/contrib/seg/Makefile,v 1.16 2006/03/07 01:03:12 tgl Exp $
MODULE_big = seg
OBJS = seg.o segparse.o
@ -21,14 +21,17 @@ include $(top_builddir)/src/Makefile.global
include $(top_srcdir)/contrib/contrib-global.mk
endif
# segscan is compiled as part of segparse
segparse.o: segscan.c
# See notes in src/backend/parser/Makefile about the following two rules
segparse.c: segparse.h ;
segparse.h: segparse.y
ifdef YACC
$(YACC) -d $(YFLAGS) -p seg_yy $<
$(YACC) -d $(YFLAGS) $<
mv -f y.tab.c segparse.c
mv -f y.tab.h segparse.h
else

View File

@ -9,14 +9,12 @@
#include "utils/builtins.h"
#include "segdata.h"
#undef yylex /* failure to redefine yylex will result in calling the */
#define yylex seg_yylex /* wrong scanner when running inside postgres backend */
extern int seg_yylex(void);
extern int yylex(void); /* defined as seg_yylex in segscan.l */
extern int significant_digits( char *str ); /* defined in seg.c */
void seg_yyerror(const char *message);
int seg_yyparse( void *result );
int seg_yyparse(void *result);
float seg_atof( char *value );
@ -32,6 +30,8 @@
%}
/* BISON Declarations */
%name-prefix="seg_yy"
%union {
struct BND {
float val;

View File

@ -2,7 +2,7 @@
#
# Makefile for the bootstrap module
#
# $PostgreSQL: pgsql/src/backend/bootstrap/Makefile,v 1.33 2006/01/05 01:56:29 momjian Exp $
# $PostgreSQL: pgsql/src/backend/bootstrap/Makefile,v 1.34 2006/03/07 01:03:12 tgl Exp $
#
#-------------------------------------------------------------------------
@ -20,43 +20,37 @@ SUBSYS.o: $(OBJS)
$(LD) $(LDREL) $(LDOUT) $@ $^
bootstrap.o bootparse.o: $(srcdir)/bootstrap_tokens.h
# bootscanner is compiled as part of bootparse
bootparse.o: $(srcdir)/bootscanner.c
# `sed' rules to remove conflicts between bootstrap scanner and parser
# and the SQL scanner and parser. For correctness' sake the rules that
# use this must depend on this Makefile.
define sed-magic
sed -e 's/^yy/Int_yy/g' \
-e 's/\([^a-zA-Z0-9_]\)yy/\1Int_yy/g'
endef
# See notes in src/backend/parser/Makefile about the following two rules
$(srcdir)/bootparse.c: $(srcdir)/bootstrap_tokens.h ;
$(srcdir)/bootstrap_tokens.h: bootparse.y Makefile
$(srcdir)/bootstrap_tokens.h: bootparse.y
ifdef YACC
$(YACC) -d $(YFLAGS) $<
$(sed-magic) < y.tab.c > $(srcdir)/bootparse.c
$(sed-magic) < y.tab.h > $(srcdir)/bootstrap_tokens.h
rm -f y.tab.c y.tab.h
mv -f y.tab.c $(srcdir)/bootparse.c
mv -f y.tab.h $(srcdir)/bootstrap_tokens.h
else
@$(missing) bison $< $@
endif
$(srcdir)/bootscanner.c: bootscanner.l Makefile
$(srcdir)/bootscanner.c: bootscanner.l
ifdef FLEX
$(FLEX) $(FLEXFLAGS) $<
$(sed-magic) lex.yy.c > $@
rm -f lex.yy.c
$(FLEX) $(FLEXFLAGS) -o'$@' $<
else
@$(missing) flex $< $@
endif
# Force these dependencies to be known even without dependency info built:
bootstrap.o bootparse.o: $(srcdir)/bootstrap_tokens.h
# bootparse.c, bootstrap_tokens.h, and bootscanner.c are in the distribution
# tarball, so they are not cleaned here.
clean:
rm -f SUBSYS.o $(OBJS) bootstrap.o
rm -f SUBSYS.o $(OBJS)
# And the garbage that might have been left behind by partial build:
@rm -f y.tab.h y.tab.c y.output lex.yy.c

View File

@ -2,14 +2,14 @@
/*-------------------------------------------------------------------------
*
* bootparse.y
* yacc parser grammar for the "backend" initialization program.
* yacc grammar for the "bootstrap" mode (BKI file format)
*
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/bootstrap/bootparse.y,v 1.79 2006/03/05 15:58:22 momjian Exp $
* $PostgreSQL: pgsql/src/backend/bootstrap/bootparse.y,v 1.80 2006/03/07 01:03:12 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -79,6 +79,8 @@ int num_columns_read = 0;
%}
%name-prefix="boot_yy"
%union
{
List *list;

View File

@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/bootstrap/bootscanner.l,v 1.41 2006/03/05 15:58:22 momjian Exp $
* $PostgreSQL: pgsql/src/backend/bootstrap/bootscanner.l,v 1.42 2006/03/07 01:03:12 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -54,6 +54,7 @@ static int yyline = 1; /* line number for error reporting */
%option nodefault
%option nounput
%option noyywrap
%option prefix="boot_yy"
D [0-9]

View File

@ -8,7 +8,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/backend/bootstrap/bootstrap.c,v 1.212 2006/03/05 15:58:22 momjian Exp $
* $PostgreSQL: pgsql/src/backend/bootstrap/bootstrap.c,v 1.213 2006/03/07 01:03:12 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -53,8 +53,6 @@ extern char *optarg;
#define ALLOC(t, c) ((t *) calloc((unsigned)(c), sizeof(t)))
extern int Int_yyparse(void);
static void usage(void);
static void bootstrap_signals(void);
static hashnode *AddStr(char *str, int strlength, int mderef);
@ -468,11 +466,8 @@ BootstrapMain(int argc, char *argv[])
/*
* Process bootstrap input.
*
* the sed script boot.sed renamed yyparse to Int_yyparse for the
* bootstrap parser to avoid conflicts with the normal SQL parser
*/
Int_yyparse();
boot_yyparse();
/* Perform a checkpoint to ensure everything's down to disk */
SetProcessingMode(NormalProcessing);

View File

@ -4,7 +4,7 @@
# Makefile for utils/misc
#
# IDENTIFICATION
# $PostgreSQL: pgsql/src/backend/utils/misc/Makefile,v 1.24 2005/10/03 22:52:23 tgl Exp $
# $PostgreSQL: pgsql/src/backend/utils/misc/Makefile,v 1.25 2006/03/07 01:03:12 tgl Exp $
#
#-------------------------------------------------------------------------
@ -33,9 +33,7 @@ guc.o: $(srcdir)/guc-file.c
$(srcdir)/guc-file.c: guc-file.l
ifdef FLEX
$(FLEX) $(FLEXFLAGS) $<
sed -e 's/^yy/GUC_yy/g' -e 's/\([^a-zA-Z0-9_]\)yy/\1GUC_yy/g' lex.yy.c > $@
rm -f lex.yy.c
$(FLEX) $(FLEXFLAGS) -o'$@' $<
else
@$(missing) flex $< $@
endif

View File

@ -4,7 +4,7 @@
*
* Copyright (c) 2000-2006, PostgreSQL Global Development Group
*
* $PostgreSQL: pgsql/src/backend/utils/misc/guc-file.l,v 1.36 2006/03/05 15:58:49 momjian Exp $
* $PostgreSQL: pgsql/src/backend/utils/misc/guc-file.l,v 1.37 2006/03/07 01:03:12 tgl Exp $
*/
%{
@ -61,6 +61,7 @@ static char *GUC_scanstr(const char *s);
%option nodefault
%option nounput
%option noyywrap
%option prefix="GUC_yy"
SIGN ("-"|"+")

View File

@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2006, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
* $PostgreSQL: pgsql/src/include/bootstrap/bootstrap.h,v 1.40 2006/03/05 15:58:54 momjian Exp $
* $PostgreSQL: pgsql/src/include/bootstrap/bootstrap.h,v 1.41 2006/03/07 01:03:12 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@ -52,8 +52,10 @@ extern char *CleanUpStr(char *s);
extern int EnterString(char *str);
extern void build_indices(void);
extern int Int_yylex(void);
extern void Int_yyerror(const char *str);
extern int boot_yyparse(void);
extern int boot_yylex(void);
extern void boot_yyerror(const char *str);
#define BS_XLOG_NOP 0
#define BS_XLOG_BOOTSTRAP 1

View File

@ -2,7 +2,7 @@
#
# Makefile for the plpgsql shared object
#
# $PostgreSQL: pgsql/src/pl/plpgsql/src/Makefile,v 1.28 2006/01/05 01:56:30 momjian Exp $
# $PostgreSQL: pgsql/src/pl/plpgsql/src/Makefile,v 1.29 2006/03/07 01:03:12 tgl Exp $
#
#-------------------------------------------------------------------------
@ -48,29 +48,28 @@ installdirs:
uninstall:
rm -f '$(DESTDIR)$(pkglibdir)/plpgsql$(DLSUFFIX)'
# Force these dependencies to be known even without dependency info built:
pl_gram.o pl_handler.o pl_comp.o pl_exec.o pl_funcs.o: plpgsql.h $(srcdir)/pl.tab.h
# pl_scan is compiled as part of pl_gram
pl_gram.o: $(srcdir)/pl_scan.c
# Note: Since the yacc and lex files are shipped in the distribution,
# they must be generated in the srcdir (as opposed to builddir).
# See notes in src/backend/parser/Makefile about the following two rules
$(srcdir)/pl_gram.c: $(srcdir)/pl.tab.h ;
$(srcdir)/pl.tab.h: gram.y
ifdef YACC
$(YACC) -d $(YFLAGS) $<
sed -e 's/yy/plpgsql_yy/g' -e 's/YY/PLPGSQL_YY/g' < y.tab.c > $(srcdir)/pl_gram.c
sed -e 's/yy/plpgsql_yy/g' -e 's/YY/PLPGSQL_YY/g' < y.tab.h > $(srcdir)/pl.tab.h
rm -f y.tab.c y.tab.h
mv -f y.tab.c $(srcdir)/pl_gram.c
mv -f y.tab.h $(srcdir)/pl.tab.h
else
@$(missing) bison $< $@
endif
$(srcdir)/pl_scan.c: scan.l
ifdef FLEX
$(FLEX) $(FLEXFLAGS) -Pplpgsql_base_yy -o'$@' $<
$(FLEX) $(FLEXFLAGS) -o'$@' $<
else
@$(missing) flex $< $@
endif
@ -82,7 +81,7 @@ distprep: $(srcdir)/pl_scan.c $(srcdir)/pl.tab.h $(srcdir)/pl_gram.c
clean distclean: clean-lib
rm -f $(OBJS)
# And the garbage that might have been left behind by partial build:
@rm -f y.tab.c y.tab.h lex.yy.c
@rm -f y.tab.h y.tab.c y.output lex.yy.c
maintainer-clean: clean
rm -f $(srcdir)/pl_gram.c $(srcdir)/pl.tab.h $(srcdir)/pl_scan.c

View File

@ -4,7 +4,7 @@
* procedural language
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/pl/plpgsql/src/gram.y,v 1.85 2006/02/12 06:37:05 tgl Exp $
* $PostgreSQL: pgsql/src/pl/plpgsql/src/gram.y,v 1.86 2006/03/07 01:03:12 tgl Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@ -64,6 +64,8 @@ static void check_labels(const char *start_label,
%}
%name-prefix="plpgsql_yy"
%union {
int32 ival;
bool boolean;
@ -2363,4 +2365,7 @@ check_labels(const char *start_label, const char *end_label)
}
}
/* Needed to avoid conflict between different prefix settings: */
#undef yylex
#include "pl_scan.c"

View File

@ -3,7 +3,7 @@
* procedural language
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.98 2005/12/28 18:11:25 tgl Exp $
* $PostgreSQL: pgsql/src/pl/plpgsql/src/pl_comp.c,v 1.99 2006/03/07 01:03:12 tgl Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@ -60,12 +60,6 @@
#include "utils/syscache.h"
/* ----------
* Variables in the parser that shouldn't go into plpgsql.h
* ----------
*/
extern PLPGSQL_YYSTYPE plpgsql_yylval;
/* ----------
* Our own local and global variables
* ----------

View File

@ -3,7 +3,7 @@
* procedural language
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/pl/plpgsql/src/plpgsql.h,v 1.67 2006/03/02 05:34:12 tgl Exp $
* $PostgreSQL: pgsql/src/pl/plpgsql/src/plpgsql.h,v 1.68 2006/03/07 01:03:12 tgl Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@ -656,7 +656,7 @@ extern char *plpgsql_error_funcname;
/* linkage to the real yytext variable */
extern char *plpgsql_base_yytext;
#define plpgsql_yytext plpgsql_base_yytext
#define yytext plpgsql_base_yytext
extern PLpgSQL_function *plpgsql_curr_compile;
extern bool plpgsql_check_syntax;

View File

@ -4,7 +4,7 @@
* procedural language
*
* IDENTIFICATION
* $PostgreSQL: pgsql/src/pl/plpgsql/src/scan.l,v 1.43 2006/02/27 16:09:50 petere Exp $
* $PostgreSQL: pgsql/src/pl/plpgsql/src/scan.l,v 1.44 2006/03/07 01:03:12 tgl Exp $
*
* This software is copyrighted by Jan Wieck - Hamburg.
*
@ -73,6 +73,7 @@ bool plpgsql_SpaceScanned = false;
%option nodefault
%option nounput
%option noyywrap
%option prefix="plpgsql_base_yy"
%option case-insensitive