TokenizerContext
typedef struct {
gint token_type;
gchar *next_token_start;
gchar *last_token_start;
gchar delimiter;
gboolean in_param_spec;
gint block_level;
gboolean ignore_semi; /* ignore any SEMI untill the next END statement where block_level==0 */
/* Padding for future expansion */
gpointer _gda_reserved1;
gpointer _gda_reserved2;
} TokenizerContext;
GdaSqlParserPrivate
typedef struct {
GRecMutex mutex;
gchar *sql;
GSList *parsed_statements;
/* parser */
void *lemon_delimiter;
void *lemon_parser;
GArray *passed_tokens; /* array of token types (gint), spaces omitted, which have been given to the parser */
/* tokenizer contexts */
TokenizerContext *context;
GSList *pushed_contexts;
/* error reporting */
GdaSqlParserError error_type;
gchar *error_msg;
gint error_line; /* (starts at 1) */
gint error_col; /* (starts at 1) */
gint error_pos; /* absolute count from start of message (starts at 1) */
/* modes */
GdaSqlParserMode mode;
GdaSqlParserFlavour flavour;
/* Padding for future expansion */
gpointer _gda_reserved1;
gpointer _gda_reserved2;
} GdaSqlParserPrivate;