1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
/*
* Copyright (c) 2004, 2012, Oracle and/or its affiliates. All rights reserved.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License as
* published by the Free Software Foundation; version 2 of the
* License.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
* 02110-1301 USA
*/
#ifndef myx_sql_parser_public_interface_h
#define myx_sql_parser_public_interface_h
#include <stdio.h>
#ifdef __cplusplus
#include <fstream>
namespace mysql_parser
{
extern "C++" {
#endif /* __cplusplus */
struct charset_info_st;
typedef charset_info_st CHARSET_INFO;
extern CHARSET_INFO *get_charset_by_name(const char *cs_name, int/*myf*/ flags);
//#if defined(__WIN__) || defined(_WIN32) || defined(_WIN64)
//#ifdef MYSQLUTILLIBRARY_EXPORTS
//#define MYX_PUBLIC_FUNC __declspec(dllexport)
//#else
//#define MYX_PUBLIC_FUNC __declspec(dllimport)
//#endif
//
//#else
#define MYX_PUBLIC_FUNC
//#endif
/*
* PUBLIC INTERFACE definition for MYSQLLibInterfaceMapper
*/
/// [SCRIPT::LibInterfaceMapper] -public_interface "libmysqlsqlparser"
#define libmysqlsqlparser_PUBLIC_INTERFACE_VERSION 10000
/// [SCRIPT::LibInterfaceMapper] -add_datatypes_from "..\..\base-library\include\myx_public_interface.h"
/*
* Typedefs
*/
class MyxStatementParser;
typedef int (* process_sql_statement_callback)(const MyxStatementParser *splitter, const char *sql, void *user_data);
/*
* Defines
*/
/*
* Enums
*/
typedef enum myx_stmt_parse_mode {
MYX_SPM_NORMAL_MODE= 0,
MYX_SPM_DELIMS_REQUIRED= 1
} MYX_STMT_PARSE_MODE;
/*
* Structs and Enums
*/
/*
* Functions
*/
MYX_PUBLIC_FUNC int myx_process_sql_statements(const char *sql,
CHARSET_INFO *cs,
int (* process_sql_statement_callback)(const MyxStatementParser *splitter, const char *sql, void *user_data),
void *user_data,
int mode);
MYX_PUBLIC_FUNC int myx_process_sql_statements_from_file(const char *filename,
CHARSET_INFO *cs,
int (* process_sql_statement_callback)(const MyxStatementParser *splitter, const char *sql, void *user_data),
void *user_data,
int mode);
MYX_PUBLIC_FUNC void myx_set_parser_source(const char *sql);
MYX_PUBLIC_FUNC void myx_free_parser_source(void);
MYX_PUBLIC_FUNC void myx_parse(void);
MYX_PUBLIC_FUNC const std::string & myx_get_err_msg(void);
MYX_PUBLIC_FUNC const void * myx_get_parser_tree(void);
MYX_PUBLIC_FUNC const void * tree_item_get_subitem_by_name(const void * tree,
const char * name,
int pos);
MYX_PUBLIC_FUNC const char * tree_item_get_name(const void * tree);
MYX_PUBLIC_FUNC const char * tree_item_get_value(const void * tree);
MYX_PUBLIC_FUNC void tree_item_dump_xml_to_file(const void * tree_item,
const char * filename);
#ifdef __cplusplus
}
MYX_PUBLIC_FUNC void myx_set_parser_input(std::istream *sqlstream);
#endif /* __cplusplus */
} // namespace mysql_parser
#endif
|