mirror of
https://github.com/postgres/postgres.git
synced 2025-07-02 09:02:37 +03:00
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:
@ -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
|
||||
|
||||
|
@ -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;
|
||||
|
@ -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]
|
||||
|
@ -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);
|
||||
|
Reference in New Issue
Block a user