00001 /*------------------------------------------------------------------------- 00002 * 00003 * parser.h 00004 * Definitions for the "raw" parser (flex and bison phases only) 00005 * 00006 * This is the external API for the raw lexing/parsing functions. 00007 * 00008 * Portions Copyright (c) 1996-2013, PostgreSQL Global Development Group 00009 * Portions Copyright (c) 1994, Regents of the University of California 00010 * 00011 * src/include/parser/parser.h 00012 * 00013 *------------------------------------------------------------------------- 00014 */ 00015 #ifndef PARSER_H 00016 #define PARSER_H 00017 00018 #include "nodes/parsenodes.h" 00019 00020 00021 typedef enum 00022 { 00023 BACKSLASH_QUOTE_OFF, 00024 BACKSLASH_QUOTE_ON, 00025 BACKSLASH_QUOTE_SAFE_ENCODING 00026 } BackslashQuoteType; 00027 00028 /* GUC variables in scan.l (every one of these is a bad idea :-() */ 00029 extern int backslash_quote; 00030 extern bool escape_string_warning; 00031 extern PGDLLIMPORT bool standard_conforming_strings; 00032 00033 00034 /* Primary entry point for the raw parsing functions */ 00035 extern List *raw_parser(const char *str); 00036 00037 /* Utility functions exported by gram.y (perhaps these should be elsewhere) */ 00038 extern List *SystemFuncName(char *name); 00039 extern TypeName *SystemTypeName(char *name); 00040 00041 #endif /* PARSER_H */