diff options
| -rw-r--r-- | src/backend/commands/proclang.c | 2 | ||||
| -rw-r--r-- | src/backend/commands/tablecmds.c | 1 | ||||
| -rw-r--r-- | src/backend/parser/gram.y | 7 | ||||
| -rw-r--r-- | src/backend/parser/keywords.c | 4 | ||||
| -rw-r--r-- | src/backend/parser/parse_utilcmd.c | 2 | ||||
| -rw-r--r-- | src/backend/parser/parser.c | 3 | ||||
| -rw-r--r-- | src/backend/parser/scan.l | 2 | ||||
| -rw-r--r-- | src/backend/utils/adt/ruleutils.c | 2 | ||||
| -rw-r--r-- | src/backend/utils/misc/guc.c | 2 | ||||
| -rw-r--r-- | src/include/parser/gramparse.h | 23 | ||||
| -rw-r--r-- | src/include/parser/parser.h | 24 | ||||
| -rw-r--r-- | src/pl/plpgsql/src/pl_comp.c | 1 |
12 files changed, 41 insertions, 32 deletions
diff --git a/src/backend/commands/proclang.c b/src/backend/commands/proclang.c index 3faf44568b..9dec622a18 100644 --- a/src/backend/commands/proclang.c +++ b/src/backend/commands/proclang.c @@ -28,8 +28,8 @@ #include "commands/defrem.h" #include "commands/proclang.h" #include "miscadmin.h" -#include "parser/gramparse.h" #include "parser/parse_func.h" +#include "parser/parser.h" #include "utils/acl.h" #include "utils/builtins.h" #include "utils/fmgroids.h" diff --git a/src/backend/commands/tablecmds.c b/src/backend/commands/tablecmds.c index 7afe6e7f02..2f84e7d8fc 100644 --- a/src/backend/commands/tablecmds.c +++ b/src/backend/commands/tablecmds.c @@ -51,7 +51,6 @@ #include "nodes/nodeFuncs.h" #include "nodes/parsenodes.h" #include "optimizer/clauses.h" -#include "parser/gramparse.h" #include "parser/parse_clause.h" #include "parser/parse_coerce.h" #include "parser/parse_expr.h" diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 20ab0bac2a..265bf54a31 100644 --- a/src/backend/parser/gram.y +++ b/src/backend/parser/gram.y @@ -4,7 +4,7 @@ /*------------------------------------------------------------------------- * * gram.y - * POSTGRES SQL YACC rules/actions + * POSTGRESQL BISON rules/actions * * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California @@ -58,6 +58,7 @@ #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" #include "parser/gramparse.h" +#include "parser/parser.h" #include "storage/lmgr.h" #include "utils/date.h" #include "utils/datetime.h" @@ -6807,7 +6808,7 @@ opt_hold: /* EMPTY */ { $$ = 0; } * * There is an ambiguity when a sub-SELECT is within an a_expr and there * are excess parentheses: do the parentheses belong to the sub-SELECT or - * to the surrounding a_expr? We don't really care, but yacc wants to know. + * to the surrounding a_expr? We don't really care, but bison wants to know. * To resolve the ambiguity, we are careful to define the grammar so that * the decision is staved off as long as possible: as long as we can keep * absorbing parentheses into the sub-SELECT, we will do so, and only when @@ -8204,7 +8205,7 @@ a_expr: c_expr { $$ = $1; } } /* * These operators must be called out explicitly in order to make use - * of yacc/bison's automatic operator-precedence handling. All other + * of bison's automatic operator-precedence handling. All other * operator names are handled by the generic productions using "Op", * below; and all those operators will have the same precedence. * diff --git a/src/backend/parser/keywords.c b/src/backend/parser/keywords.c index 83db2d2b9c..5a56a1f17c 100644 --- a/src/backend/parser/keywords.c +++ b/src/backend/parser/keywords.c @@ -15,10 +15,8 @@ */ #include "postgres.h" -#include "nodes/nodes.h" -#include "nodes/parsenodes.h" +#include "parser/gramparse.h" #include "parser/keywords.h" -#include "parser/gram.h" #define PG_KEYWORD(a,b,c) {a,b,c}, diff --git a/src/backend/parser/parse_utilcmd.c b/src/backend/parser/parse_utilcmd.c index d9ce64adbd..2bcf2619cf 100644 --- a/src/backend/parser/parse_utilcmd.c +++ b/src/backend/parser/parse_utilcmd.c @@ -42,12 +42,12 @@ #include "nodes/makefuncs.h" #include "nodes/nodeFuncs.h" #include "parser/analyze.h" -#include "parser/gramparse.h" #include "parser/parse_clause.h" #include "parser/parse_expr.h" #include "parser/parse_relation.h" #include "parser/parse_type.h" #include "parser/parse_utilcmd.h" +#include "parser/parser.h" #include "rewrite/rewriteManip.h" #include "utils/acl.h" #include "utils/builtins.h" diff --git a/src/backend/parser/parser.c b/src/backend/parser/parser.c index 48465f62bd..ad8f1a740a 100644 --- a/src/backend/parser/parser.c +++ b/src/backend/parser/parser.c @@ -21,8 +21,7 @@ #include "postgres.h" -#include "parser/gramparse.h" /* required before parser/gram.h! */ -#include "parser/gram.h" +#include "parser/gramparse.h" #include "parser/parser.h" diff --git a/src/backend/parser/scan.l b/src/backend/parser/scan.l index 6448cf2bcf..54d82bf16b 100644 --- a/src/backend/parser/scan.l +++ b/src/backend/parser/scan.l @@ -35,8 +35,6 @@ #include "parser/gramparse.h" #include "parser/keywords.h" -/* Not needed now that this file is compiled as part of gram.y */ -/* #include "parser/gram.h" */ #include "parser/scansup.h" #include "mb/pg_wchar.h" diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c index d302fb8528..1562a5444c 100644 --- a/src/backend/utils/adt/ruleutils.c +++ b/src/backend/utils/adt/ruleutils.c @@ -39,10 +39,10 @@ #include "nodes/nodeFuncs.h" #include "optimizer/clauses.h" #include "optimizer/tlist.h" -#include "parser/gramparse.h" #include "parser/keywords.h" #include "parser/parse_func.h" #include "parser/parse_oper.h" +#include "parser/parser.h" #include "parser/parsetree.h" #include "rewrite/rewriteHandler.h" #include "rewrite/rewriteManip.h" diff --git a/src/backend/utils/misc/guc.c b/src/backend/utils/misc/guc.c index 24301852b8..11ebac80b3 100644 --- a/src/backend/utils/misc/guc.c +++ b/src/backend/utils/misc/guc.c @@ -44,10 +44,10 @@ #include "optimizer/geqo.h" #include "optimizer/paths.h" #include "optimizer/planmain.h" -#include "parser/gramparse.h" #include "parser/parse_expr.h" #include "parser/parse_relation.h" #include "parser/parse_type.h" +#include "parser/parser.h" #include "parser/scansup.h" #include "pgstat.h" #include "postmaster/autovacuum.h" diff --git a/src/include/parser/gramparse.h b/src/include/parser/gramparse.h index 6781bcec50..a42c8f671f 100644 --- a/src/include/parser/gramparse.h +++ b/src/include/parser/gramparse.h @@ -1,7 +1,11 @@ /*------------------------------------------------------------------------- * * gramparse.h - * Declarations for routines exported from lexer and parser files. + * Shared definitions for the "raw" parser (flex and bison phases only) + * + * NOTE: this file is only meant to be included in the core parsing files, + * ie, parser.c, gram.y, scan.l, and keywords.c. Definitions that are needed + * outside the core parser should be in parser.h. * * * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group @@ -27,17 +31,10 @@ */ #define YYLTYPE int -typedef enum -{ - BACKSLASH_QUOTE_OFF, - BACKSLASH_QUOTE_ON, - BACKSLASH_QUOTE_SAFE_ENCODING -} BackslashQuoteType; - -/* GUC variables in scan.l (every one of these is a bad idea :-() */ -extern int backslash_quote; -extern bool escape_string_warning; -extern bool standard_conforming_strings; +/* + * After defining YYLTYPE, it's safe to include gram.h. + */ +#include "parser/gram.h" /* from parser.c */ @@ -53,7 +50,5 @@ extern void base_yyerror(const char *message); /* from gram.y */ extern void parser_init(void); extern int base_yyparse(void); -extern List *SystemFuncName(char *name); -extern TypeName *SystemTypeName(char *name); #endif /* GRAMPARSE_H */ diff --git a/src/include/parser/parser.h b/src/include/parser/parser.h index c64c390156..24aded5a3d 100644 --- a/src/include/parser/parser.h +++ b/src/include/parser/parser.h @@ -1,8 +1,9 @@ /*------------------------------------------------------------------------- * * parser.h - * Definitions for the "raw" parser (lex and yacc phases only) + * Definitions for the "raw" parser (flex and bison phases only) * + * This is the external API for the raw lexing/parsing functions. * * Portions Copyright (c) 1996-2009, PostgreSQL Global Development Group * Portions Copyright (c) 1994, Regents of the University of California @@ -14,10 +15,29 @@ #ifndef PARSER_H #define PARSER_H -#include "nodes/pg_list.h" +#include "nodes/parsenodes.h" + +typedef enum +{ + BACKSLASH_QUOTE_OFF, + BACKSLASH_QUOTE_ON, + BACKSLASH_QUOTE_SAFE_ENCODING +} BackslashQuoteType; + +/* GUC variables in scan.l (every one of these is a bad idea :-() */ +extern int backslash_quote; +extern bool escape_string_warning; +extern bool standard_conforming_strings; + + +/* Primary entry points for the raw parsing functions */ extern List *raw_parser(const char *str); extern char *pg_parse_string_token(const char *token); +/* Utility functions exported by gram.y (perhaps these should be elsewhere) */ +extern List *SystemFuncName(char *name); +extern TypeName *SystemTypeName(char *name); + #endif /* PARSER_H */ diff --git a/src/pl/plpgsql/src/pl_comp.c b/src/pl/plpgsql/src/pl_comp.c index 62f689ec21..028013f860 100644 --- a/src/pl/plpgsql/src/pl_comp.c +++ b/src/pl/plpgsql/src/pl_comp.c @@ -28,7 +28,6 @@ #include "catalog/pg_type.h" #include "funcapi.h" #include "nodes/makefuncs.h" -#include "parser/gramparse.h" #include "parser/parse_type.h" #include "tcop/tcopprot.h" #include "utils/array.h" |
