summaryrefslogtreecommitdiffstats
path: root/src/interfaces/ecpg/preproc/preproc_extern.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/interfaces/ecpg/preproc/preproc_extern.h')
-rw-r--r--src/interfaces/ecpg/preproc/preproc_extern.h128
1 files changed, 128 insertions, 0 deletions
diff --git a/src/interfaces/ecpg/preproc/preproc_extern.h b/src/interfaces/ecpg/preproc/preproc_extern.h
new file mode 100644
index 0000000..992797b
--- /dev/null
+++ b/src/interfaces/ecpg/preproc/preproc_extern.h
@@ -0,0 +1,128 @@
+/* src/interfaces/ecpg/preproc/preproc_extern.h */
+
+#ifndef _ECPG_PREPROC_EXTERN_H
+#define _ECPG_PREPROC_EXTERN_H
+
+#include "common/keywords.h"
+#include "type.h"
+
+#ifndef CHAR_BIT
+#include <limits.h>
+#endif
+
+/* defines */
+
+#define STRUCT_DEPTH 128
+#define EMPTY mm_strdup("")
+
+/* variables */
+
+extern bool autocommit,
+ auto_create_c,
+ system_includes,
+ force_indicator,
+ questionmarks,
+ regression_mode,
+ auto_prepare;
+extern int braces_open,
+ ret_value,
+ struct_level,
+ ecpg_internal_var;
+extern char *current_function;
+extern char *descriptor_name;
+extern char *connection;
+extern char *input_filename;
+extern char *base_yytext,
+ *token_start;
+
+#ifdef YYDEBUG
+extern int base_yydebug;
+#endif
+extern int base_yylineno;
+extern FILE *base_yyin,
+ *base_yyout;
+extern char *output_filename;
+
+extern struct _include_path *include_paths;
+extern struct cursor *cur;
+extern struct typedefs *types;
+extern struct _defines *defines;
+extern struct declared_list *g_declared_list;
+extern struct ECPGtype ecpg_no_indicator;
+extern struct variable no_indicator;
+extern struct arguments *argsinsert;
+extern struct arguments *argsresult;
+extern struct when when_error,
+ when_nf,
+ when_warn;
+extern struct ECPGstruct_member *struct_member_list[STRUCT_DEPTH];
+
+/* Globals from keywords.c */
+extern const uint16 SQLScanKeywordTokens[];
+
+/* functions */
+
+extern const char *get_dtype(enum ECPGdtype);
+extern void lex_init(void);
+extern void output_line_number(void);
+extern void output_statement(char *, int, enum ECPG_statement_type);
+extern void output_prepare_statement(char *, char *);
+extern void output_deallocate_prepare_statement(char *);
+extern void output_simple_statement(char *, int);
+extern char *hashline_number(void);
+extern int base_yyparse(void);
+extern int base_yylex(void);
+extern void base_yyerror(const char *);
+extern void *mm_alloc(size_t);
+extern char *mm_strdup(const char *);
+extern void mmerror(int errorcode, enum errortype type, const char *error,...) pg_attribute_printf(3, 4);
+extern void mmfatal(int errorcode, const char *error,...) pg_attribute_printf(2, 3) pg_attribute_noreturn();
+extern void output_get_descr_header(char *);
+extern void output_get_descr(char *, char *);
+extern void output_set_descr_header(char *);
+extern void output_set_descr(char *, char *);
+extern void push_assignment(char *, enum ECPGdtype);
+extern struct variable *find_variable(char *);
+extern void whenever_action(int);
+extern void add_descriptor(char *, char *);
+extern void drop_descriptor(char *, char *);
+extern struct descriptor *lookup_descriptor(char *, char *);
+extern struct variable *descriptor_variable(const char *name, int input);
+extern struct variable *sqlda_variable(const char *name);
+extern void add_variable_to_head(struct arguments **, struct variable *, struct variable *);
+extern void add_variable_to_tail(struct arguments **, struct variable *, struct variable *);
+extern void remove_variable_from_list(struct arguments **list, struct variable *var);
+extern void dump_variables(struct arguments *, int);
+extern struct typedefs *get_typedef(char *);
+extern void adjust_array(enum ECPGttype, char **, char **, char *, char *, int, bool);
+extern void reset_variables(void);
+extern void check_indicator(struct ECPGtype *);
+extern void remove_typedefs(int);
+extern void remove_variables(int);
+extern struct variable *new_variable(const char *, struct ECPGtype *, int);
+extern int ScanCKeywordLookup(const char *text);
+extern int ScanECPGKeywordLookup(const char *text);
+extern void parser_init(void);
+extern int filtered_base_yylex(void);
+
+/* return codes */
+
+#define ILLEGAL_OPTION 1
+#define NO_INCLUDE_FILE 2
+#define PARSE_ERROR 3
+#define INDICATOR_NOT_ARRAY 4
+#define OUT_OF_MEMORY 5
+#define INDICATOR_NOT_STRUCT 6
+#define INDICATOR_NOT_SIMPLE 7
+
+enum COMPAT_MODE
+{
+ ECPG_COMPAT_PGSQL = 0, ECPG_COMPAT_INFORMIX, ECPG_COMPAT_INFORMIX_SE, ECPG_COMPAT_ORACLE
+};
+extern enum COMPAT_MODE compat;
+
+#define INFORMIX_MODE (compat == ECPG_COMPAT_INFORMIX || compat == ECPG_COMPAT_INFORMIX_SE)
+#define ORACLE_MODE (compat == ECPG_COMPAT_ORACLE)
+
+
+#endif /* _ECPG_PREPROC_EXTERN_H */