~ubuntu-branches/ubuntu/oneiric/postgresql-9.1/oneiric-security

« back to all changes in this revision

Viewing changes to src/interfaces/ecpg/preproc/extern.h

  • Committer: Bazaar Package Importer
  • Author(s): Martin Pitt
  • Date: 2011-05-11 10:41:53 UTC
  • Revision ID: james.westby@ubuntu.com-20110511104153-psbh2o58553fv1m0
Tags: upstream-9.1~beta1
ImportĀ upstreamĀ versionĀ 9.1~beta1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/* src/interfaces/ecpg/preproc/extern.h */
 
2
 
 
3
#ifndef _ECPG_PREPROC_EXTERN_H
 
4
#define _ECPG_PREPROC_EXTERN_H
 
5
 
 
6
#include "type.h"
 
7
#include "parser/keywords.h"
 
8
 
 
9
#include <errno.h>
 
10
#ifndef CHAR_BIT
 
11
#include <limits.h>
 
12
#endif
 
13
 
 
14
/* defines */
 
15
 
 
16
#define STRUCT_DEPTH 128
 
17
#define EMPTY mm_strdup("")
 
18
 
 
19
/* variables */
 
20
 
 
21
extern bool autocommit,
 
22
                        auto_create_c,
 
23
                        system_includes,
 
24
                        force_indicator,
 
25
                        questionmarks,
 
26
                        regression_mode,
 
27
                        auto_prepare;
 
28
extern int      braces_open,
 
29
                        ret_value,
 
30
                        struct_level,
 
31
                        ecpg_internal_var;
 
32
extern char *current_function;
 
33
extern char *descriptor_index;
 
34
extern char *descriptor_name;
 
35
extern char *connection;
 
36
extern char *input_filename;
 
37
extern char *yytext,
 
38
                   *token_start;
 
39
 
 
40
#ifdef YYDEBUG
 
41
extern int      yydebug;
 
42
#endif
 
43
extern int      yylineno;
 
44
extern FILE *yyin,
 
45
                   *yyout;
 
46
extern char *output_filename;
 
47
 
 
48
extern struct _include_path *include_paths;
 
49
extern struct cursor *cur;
 
50
extern struct typedefs *types;
 
51
extern struct _defines *defines;
 
52
extern struct ECPGtype ecpg_no_indicator;
 
53
extern struct variable no_indicator;
 
54
extern struct arguments *argsinsert;
 
55
extern struct arguments *argsresult;
 
56
extern struct when when_error,
 
57
                        when_nf,
 
58
                        when_warn;
 
59
extern struct ECPGstruct_member *struct_member_list[STRUCT_DEPTH];
 
60
 
 
61
/* functions */
 
62
 
 
63
extern const char *get_dtype(enum ECPGdtype);
 
64
extern void lex_init(void);
 
65
extern void output_line_number(void);
 
66
extern void output_statement(char *, int, enum ECPG_statement_type);
 
67
extern void output_prepare_statement(char *, char *);
 
68
extern void output_deallocate_prepare_statement(char *);
 
69
extern void output_simple_statement(char *);
 
70
extern char *hashline_number(void);
 
71
extern int      base_yyparse(void);
 
72
extern int      base_yylex(void);
 
73
extern void base_yyerror(const char *);
 
74
extern void *mm_alloc(size_t), *mm_realloc(void *, size_t);
 
75
extern char *mm_strdup(const char *);
 
76
extern void
 
77
mmerror(int, enum errortype, const char *,...)
 
78
/* This extension allows gcc to check the format string */
 
79
__attribute__((format(printf, 3, 4)));
 
80
extern void output_get_descr_header(char *);
 
81
extern void output_get_descr(char *, char *);
 
82
extern void output_set_descr_header(char *);
 
83
extern void output_set_descr(char *, char *);
 
84
extern void push_assignment(char *, enum ECPGdtype);
 
85
extern struct variable *find_variable(char *);
 
86
extern void whenever_action(int);
 
87
extern void add_descriptor(char *, char *);
 
88
extern void drop_descriptor(char *, char *);
 
89
extern struct descriptor *lookup_descriptor(char *, char *);
 
90
extern struct variable *descriptor_variable(const char *name, int input);
 
91
extern struct variable *sqlda_variable(const char *name);
 
92
extern void add_variable_to_head(struct arguments **, struct variable *, struct variable *);
 
93
extern void add_variable_to_tail(struct arguments **, struct variable *, struct variable *);
 
94
extern void remove_variable_from_list(struct arguments ** list, struct variable * var);
 
95
extern void dump_variables(struct arguments *, int);
 
96
extern struct typedefs *get_typedef(char *);
 
97
extern void adjust_array(enum ECPGttype, char **, char **, char *, char *, int, bool);
 
98
extern void reset_variables(void);
 
99
extern void check_indicator(struct ECPGtype *);
 
100
extern void remove_typedefs(int);
 
101
extern void remove_variables(int);
 
102
extern struct variable *new_variable(const char *, struct ECPGtype *, int);
 
103
extern const ScanKeyword *ScanCKeywordLookup(const char *);
 
104
extern const ScanKeyword *ScanECPGKeywordLookup(const char *text);
 
105
extern void scanner_init(const char *);
 
106
extern void parser_init(void);
 
107
extern void scanner_finish(void);
 
108
extern int      filtered_base_yylex(void);
 
109
 
 
110
/* return codes */
 
111
 
 
112
#define ILLEGAL_OPTION          1
 
113
#define NO_INCLUDE_FILE         2
 
114
#define PARSE_ERROR                     3
 
115
#define INDICATOR_NOT_ARRAY 4
 
116
#define OUT_OF_MEMORY           5
 
117
#define INDICATOR_NOT_STRUCT    6
 
118
#define INDICATOR_NOT_SIMPLE    7
 
119
 
 
120
enum COMPAT_MODE
 
121
{
 
122
        ECPG_COMPAT_PGSQL = 0, ECPG_COMPAT_INFORMIX, ECPG_COMPAT_INFORMIX_SE
 
123
};
 
124
extern enum COMPAT_MODE compat;
 
125
 
 
126
#define INFORMIX_MODE   (compat == ECPG_COMPAT_INFORMIX || compat == ECPG_COMPAT_INFORMIX_SE)
 
127
 
 
128
#endif   /* _ECPG_PREPROC_EXTERN_H */