summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/backend/commands/proclang.c2
-rw-r--r--src/backend/commands/tablecmds.c1
-rw-r--r--src/backend/parser/gram.y7
-rw-r--r--src/backend/parser/keywords.c4
-rw-r--r--src/backend/parser/parse_utilcmd.c2
-rw-r--r--src/backend/parser/parser.c3
-rw-r--r--src/backend/parser/scan.l2
-rw-r--r--src/backend/utils/adt/ruleutils.c2
-rw-r--r--src/backend/utils/misc/guc.c2
-rw-r--r--src/include/parser/gramparse.h23
-rw-r--r--src/include/parser/parser.h24
-rw-r--r--src/pl/plpgsql/src/pl_comp.c1
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"