42 typedef void* (*pars_user_func_cb_t)(
void* arg,
void* user_arg);
51 extern ibool pars_print_lexed;
94 #define PARS_NOT_PARAM 2
145 que_node_t* res_word,
175 que_node_t* select_list,
206 que_node_t* search_cond,
241 que_node_t* search_cond);
250 que_node_t* values_list,
272 que_node_t* stat_list);
281 que_node_t* stat_list,
282 que_node_t* else_part);
291 que_node_t* loop_start_limit,
292 que_node_t* loop_end_limit,
293 que_node_t* stat_list);
302 que_node_t* stat_list);
324 que_node_t* res_word,
404 void* not_fit_in_memory);
438 que_node_t* stat_list);
742 #define PARS_FUNC_ARITH 1
743 #define PARS_FUNC_LOGICAL 2
744 #define PARS_FUNC_CMP 3
745 #define PARS_FUNC_PREDEFINED 4
746 #define PARS_FUNC_AGGREGATE 5
747 #define PARS_FUNC_OTHER 6
752 #include "pars0pars.ic"
UNIV_INTERN sym_node_t * pars_column_def(sym_node_t *sym_node, pars_res_word_t *type, sym_node_t *len, void *is_unsigned, void *is_not_null)
que_node_t * loop_end_limit
UNIV_INTERN sel_node_t * pars_select_list(que_node_t *select_list, sym_node_t *into_list)
UNIV_INTERN que_thr_t * pars_complete_graph_for_exec(que_node_t *node, trx_t *trx, mem_heap_t *heap)
UNIV_INTERN assign_node_t * pars_assignment_statement(sym_node_t *var, que_node_t *val)
UNIV_INTERN void pars_info_add_id(pars_info_t *info, const char *name, const char *id)
UNIV_INTERN que_t * pars_sql(pars_info_t *info, const char *str)
UNIV_INTERN que_node_t * pars_cursor_declaration(sym_node_t *sym_node, sel_node_t *select_node)
UNIV_INTERN elsif_node_t * pars_elsif_element(que_node_t *cond, que_node_t *stat_list)
UNIV_INTERN row_printf_node_t * pars_row_printf_statement(sel_node_t *sel_node)
UNIV_INTERN upd_node_t * pars_update_statement(upd_node_t *node, sym_node_t *cursor_sym, que_node_t *search_cond)
UNIV_INTERN upd_node_t * pars_update_statement_start(ibool is_delete, sym_node_t *table_sym, col_assign_node_t *col_assign_list)
UT_LIST_NODE_T(func_node_t) cond_list
UNIV_INTERN void pars_info_add_int4_literal(pars_info_t *info, const char *name, lint val)
UNIV_INTERN col_assign_node_t * pars_column_assignment(sym_node_t *column, que_node_t *exp)
UNIV_INTERN func_node_t * pars_op(int func, que_node_t *arg1, que_node_t *arg2)
UNIV_INTERN void yyerror(const char *s)
UNIV_INTERN ins_node_t * pars_insert_statement(sym_node_t *table_sym, que_node_t *values_list, sel_node_t *select)
UNIV_INTERN pars_user_func_t * pars_info_get_user_func(pars_info_t *info, const char *name)
UNIV_INTERN void pars_info_add_str_literal(pars_info_t *info, const char *name, const char *str)
UNIV_INTERN que_fork_t * pars_stored_procedure_call(sym_node_t *sym_node)
UNIV_INTERN que_fork_t * pars_procedure_definition(sym_node_t *sym_node, sym_node_t *param_list, que_node_t *stat_list)
void *(* pars_user_func_cb_t)(void *arg, void *user_arg)
UNIV_INTERN commit_node_t * pars_commit_statement(void)
UNIV_INTERN sel_node_t * pars_select_statement(sel_node_t *select_node, sym_node_t *table_list, que_node_t *search_cond, pars_res_word_t *for_update, pars_res_word_t *consistent_read, order_node_t *order_by)
UNIV_INTERN while_node_t * pars_while_statement(que_node_t *cond, que_node_t *stat_list)
UNIV_INTERN fetch_node_t * pars_fetch_statement(sym_node_t *cursor, sym_node_t *into_list, sym_node_t *user_func)
UNIV_INTERN pars_info_t * pars_info_create(void)
UNIV_INTERN que_node_t * pars_function_declaration(sym_node_t *sym_node)
UNIV_INTERN roll_node_t * pars_rollback_statement(void)
UNIV_INTERN void pars_info_add_ull_literal(pars_info_t *info, const char *name, ib_uint64_t val)
UNIV_INTERN void pars_lexer_close(void)
UNIV_INTERN func_node_t * pars_func(que_node_t *res_word, que_node_t *arg)
UNIV_INTERN sym_node_t * pars_variable_declaration(sym_node_t *node, pars_res_word_t *type)
UNIV_INTERN tab_node_t * pars_create_table(sym_node_t *table_sym, sym_node_t *column_defs, void *not_fit_in_memory)
UNIV_INTERN sym_node_t * pars_parameter_declaration(sym_node_t *node, ulint param_type, pars_res_word_t *type)
UNIV_INTERN return_node_t * pars_return_statement(void)
elsif_node_t * elsif_list
UNIV_INTERN void pars_get_lex_chars(char *buf, int *result, int max_size)
UNIV_INTERN func_node_t * pars_procedure_call(que_node_t *res_word, que_node_t *args)
UNIV_INTERN if_node_t * pars_if_statement(que_node_t *cond, que_node_t *stat_list, que_node_t *else_part)
UNIV_INTERN void pars_info_free(pars_info_t *info)
UNIV_INTERN exit_node_t * pars_exit_statement(void)
UNIV_INTERN order_node_t * pars_order_by(sym_node_t *column, pars_res_word_t *asc)
UNIV_INTERN open_node_t * pars_open_statement(ulint type, sym_node_t *cursor)
UNIV_INTERN pars_bound_lit_t * pars_info_get_bound_lit(pars_info_t *info, const char *name)
que_node_t * loop_start_limit
UNIV_INTERN for_node_t * pars_for_statement(sym_node_t *loop_var, que_node_t *loop_start_limit, que_node_t *loop_end_limit, que_node_t *stat_list)
UNIV_INTERN ind_node_t * pars_create_index(pars_res_word_t *unique_def, pars_res_word_t *clustered_def, sym_node_t *index_sym, sym_node_t *table_sym, sym_node_t *column_list)
UNIV_INTERN void pars_info_add_function(pars_info_t *info, const char *name, pars_user_func_cb_t func, void *arg)
UNIV_INTERN pars_bound_id_t * pars_info_get_bound_id(pars_info_t *info, const char *name)
UNIV_INTERN void pars_info_add_literal(pars_info_t *info, const char *name, const void *address, ulint length, ulint type, ulint prtype)