aboutsummaryrefslogtreecommitdiff
path: root/src/include/parser
diff options
context:
space:
mode:
Diffstat (limited to 'src/include/parser')
-rw-r--r--src/include/parser/gramparse.h25
-rw-r--r--src/include/parser/parser.h26
2 files changed, 33 insertions, 18 deletions
diff --git a/src/include/parser/gramparse.h b/src/include/parser/gramparse.h
index 86719855be8..31290a270c8 100644
--- a/src/include/parser/gramparse.h
+++ b/src/include/parser/gramparse.h
@@ -1,13 +1,17 @@
/*-------------------------------------------------------------------------
*
* 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
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/parser/gramparse.h,v 1.44 2009/06/11 14:49:11 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/parser/gramparse.h,v 1.45 2009/07/12 17:12:34 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -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 cbe879302fc..becc24a9a94 100644
--- a/src/include/parser/parser.h
+++ b/src/include/parser/parser.h
@@ -1,23 +1,43 @@
/*-------------------------------------------------------------------------
*
* 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
*
- * $PostgreSQL: pgsql/src/include/parser/parser.h,v 1.25 2009/04/19 21:50:08 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/parser/parser.h,v 1.26 2009/07/12 17:12:34 tgl Exp $
*
*-------------------------------------------------------------------------
*/
#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 */