![]() |
MySQL 9.2.0
Source Code Documentation
|
Conducting the whole scanning and parsing of routing guidelines rules. More...
#include <rules_parser.h>
Public Member Functions | |
Rules_parser (std::function< void(const std::string &)> tracer=nullptr) | |
rpn::Expression | parse (const std::string &buf, rpn::Context *context) |
bool | extended_session_info_used () const |
bool | session_rand_used () const |
Static Public Member Functions | |
static std::vector< std::string > | get_keyword_names () |
static std::vector< std::string > | get_function_names () |
Private Member Functions | |
Rules_parser (const Rules_parser &)=delete | |
Rules_parser (Rules_parser &&)=delete | |
Rules_parser & | operator= (const Rules_parser &)=delete |
Rules_parser & | operator= (Rules_parser &&)=delete |
void | emit (rpn::Token::Type type, const YYLTYPE &loc) |
void | emit_null () |
void | emit_num (double val, rpn::Token::Type type=rpn::Token::Type::NUM) |
void | emit_string (std::string_view str, rpn::Token::Type type=rpn::Token::Type::STR) |
void | emit_log_operation (rpn::Token::Type type, double arg_split, const YYLTYPE &loc) |
bool | emit_in_op (const Exp_info &e, List_info *list, YYLTYPE *llocp, Exp_info *ret) |
bool | emit_like_op (const Exp_info &str, const Exp_info &pattern, YYLTYPE *llocp, Exp_info *ret) |
bool | emit_function (const rpn::Function_definition *function, List_info *arguments, YYLTYPE *llocp, Exp_info *ret) |
bool | emit_resolve (YYLTYPE *llocp, Exp_info *ret, rpn::Token::Type resolve_ver) |
bool | emit_concat (const List_info *arguments, YYLTYPE *llocp, Exp_info *ret) |
bool | emit_regexp (const List_info *arguments, YYLTYPE *llocp, Exp_info *ret) |
bool | emit_reference (std::string_view name, YYLTYPE *llocp, Exp_info *ret) |
bool | emit_network (Exp_info *ret) |
bool | check_role_types (const Exp_info &left, const Exp_info &right, YYLTYPE *llocp) |
bool | type_error (YYLTYPE *llocp, const std::string &msg, rpn::Token::Type expected, rpn::Token::Type got) |
void | trace (const std::string &s) |
void | is_extended_session_info (std::string_view name) |
void | uses_session_rand (std::string_view name) |
friend | int::yyparse (Rules_parser *rp) |
friend | int::yylex (union YYSTYPE *lvalp, YYLTYPE *llocp, routing_guidelines::Rules_parser *rp) |
friend | void::yyerror (YYLTYPE *llocp, routing_guidelines::Rules_parser *rp, const char *msg) |
Private Attributes | |
std::vector< rpn::Token > | rpn_ |
std::string | error_ |
rpn::Context * | context_ {nullptr} |
bool | extended_session_info_in_use_ {false} |
bool | session_rand_value_used_ {false} |
const std::string * | buf_ {nullptr} |
std::string::size_type | pos_ {0} |
std::function< void(const std::string &)> | tracer_ |
Conducting the whole scanning and parsing of routing guidelines rules.
|
inlineexplicit |
|
privatedelete |
|
privatedelete |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
inline |
|
static |
|
static |
|
private |
|
private |
|
private |
|
privatedelete |
|
privatedelete |
rpn::Expression routing_guidelines::Rules_parser::parse | ( | const std::string & | buf, |
rpn::Context * | context | ||
) |
|
inline |
|
inlineprivate |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |
|
private |