Definition at line 8008 of file pugixml.cpp.
xpath_parser::xpath_parser | ( | const char_t * | query, | |
xpath_variable_set * | variables, | |||
xpath_allocator * | alloc, | |||
xpath_parse_result * | result | |||
) | [inline] |
Definition at line 8758 of file pugixml.cpp.
void* xpath_parser::alloc_node | ( | ) | [inline] |
Definition at line 8040 of file pugixml.cpp.
References _alloc, xpath_allocator::allocate_nothrow(), and throw_error_oom().
Referenced by parse_additive_expression(), parse_and_expression(), parse_equality_expression(), parse_filter_expression(), parse_function(), parse_function_helper(), parse_location_path(), parse_multiplicative_expression(), parse_or_expression(), parse_path_expression(), parse_primary_expression(), parse_relational_expression(), parse_relative_location_path(), parse_step(), parse_unary_expression(), and parse_union_expression().
const char_t* xpath_parser::alloc_string | ( | const xpath_lexer_string & | value | ) | [inline] |
Definition at line 8048 of file pugixml.cpp.
References _alloc, xpath_allocator::allocate_nothrow(), xpath_lexer_string::begin, xpath_lexer_string::end, and throw_error_oom().
Referenced by parse_primary_expression(), and parse_step().
static xpath_ast_node* xpath_parser::parse | ( | const char_t * | query, | |
xpath_variable_set * | variables, | |||
xpath_allocator * | alloc, | |||
xpath_parse_result * | result | |||
) | [inline, static] |
Definition at line 8772 of file pugixml.cpp.
References error(), and parse().
xpath_ast_node* xpath_parser::parse | ( | ) | [inline] |
Definition at line 8761 of file pugixml.cpp.
References _lexer, xpath_lexer::current(), lex_eof, parse_expression(), and throw_error().
Referenced by parse().
xpath_ast_node* xpath_parser::parse_additive_expression | ( | ) | [inline] |
Definition at line 8666 of file pugixml.cpp.
References _lexer, alloc_node(), ast_op_add, ast_op_subtract, xpath_lexer::current(), lex_minus, lex_plus, xpath_lexer::next(), parse_multiplicative_expression(), and pugi::xpath_type_number.
Referenced by parse_relational_expression().
xpath_ast_node* xpath_parser::parse_and_expression | ( | ) | [inline] |
Definition at line 8724 of file pugixml.cpp.
References _lexer, alloc_node(), ast_op_and, xpath_lexer::contents(), xpath_lexer::current(), lex_string, xpath_lexer::next(), parse_equality_expression(), PUGIXML_TEXT, and pugi::xpath_type_boolean.
Referenced by parse_or_expression().
axis_t xpath_parser::parse_axis_name | ( | const xpath_lexer_string & | name, | |
bool & | specified | |||
) | [inline] |
Definition at line 8178 of file pugixml.cpp.
References axis_ancestor, axis_ancestor_or_self, axis_attribute, axis_child, axis_descendant, axis_descendant_or_self, axis_following, axis_following_sibling, axis_namespace, axis_parent, axis_preceding, axis_preceding_sibling, axis_self, xpath_lexer_string::begin, and PUGIXML_TEXT.
Referenced by parse_step().
xpath_ast_node* xpath_parser::parse_equality_expression | ( | ) | [inline] |
Definition at line 8707 of file pugixml.cpp.
References _lexer, alloc_node(), ast_op_equal, ast_op_not_equal, xpath_lexer::current(), lex_equal, lex_not_equal, xpath_lexer::next(), parse_relational_expression(), and pugi::xpath_type_boolean.
Referenced by parse_and_expression().
xpath_ast_node* xpath_parser::parse_expression | ( | ) | [inline] |
Definition at line 8754 of file pugixml.cpp.
References parse_or_expression().
Referenced by parse(), parse_filter_expression(), parse_primary_expression(), and parse_step().
xpath_ast_node* xpath_parser::parse_filter_expression | ( | ) | [inline] |
Definition at line 8375 of file pugixml.cpp.
References _lexer, alloc_node(), ast_filter, ast_filter_posinv, xpath_lexer::current(), xpath_ast_node::is_posinv(), lex_close_square_brace, lex_open_square_brace, xpath_lexer::next(), parse_expression(), parse_primary_expression(), xpath_ast_node::rettype(), throw_error(), pugi::xpath_type_node_set, and pugi::xpath_type_number.
Referenced by parse_path_expression().
xpath_ast_node* xpath_parser::parse_function | ( | const xpath_lexer_string & | name, | |
size_t | argc, | |||
xpath_ast_node * | args[2] | |||
) | [inline] |
Definition at line 8070 of file pugixml.cpp.
References alloc_node(), ast_func_boolean, ast_func_ceiling, ast_func_concat, ast_func_contains, ast_func_count, ast_func_false, ast_func_floor, ast_func_id, ast_func_lang, ast_func_last, ast_func_local_name_0, ast_func_local_name_1, ast_func_name_0, ast_func_name_1, ast_func_namespace_uri_0, ast_func_namespace_uri_1, ast_func_normalize_space_0, ast_func_normalize_space_1, ast_func_not, ast_func_number_0, ast_func_number_1, ast_func_position, ast_func_round, ast_func_starts_with, ast_func_string_0, ast_func_string_1, ast_func_string_length_0, ast_func_string_length_1, ast_func_substring_2, ast_func_substring_3, ast_func_substring_after, ast_func_substring_before, ast_func_sum, ast_func_translate, ast_func_true, xpath_lexer_string::begin, parse_function_helper(), PUGIXML_TEXT, throw_error(), pugi::xpath_type_boolean, pugi::xpath_type_node_set, pugi::xpath_type_number, and pugi::xpath_type_string.
Referenced by parse_primary_expression().
xpath_ast_node* xpath_parser::parse_function_helper | ( | ast_type_t | type0, | |
ast_type_t | type1, | |||
size_t | argc, | |||
xpath_ast_node * | args[2] | |||
) | [inline] |
Definition at line 8062 of file pugixml.cpp.
References alloc_node(), throw_error(), pugi::xpath_type_node_set, and pugi::xpath_type_string.
Referenced by parse_function().
xpath_ast_node* xpath_parser::parse_location_path | ( | ) | [inline] |
Definition at line 8540 of file pugixml.cpp.
References _lexer, alloc_node(), ast_step, ast_step_root, axis_descendant_or_self, xpath_lexer::current(), lex_axis_attribute, lex_dot, lex_double_dot, lex_double_slash, lex_multiply, lex_slash, lex_string, xpath_lexer::next(), nodetest_type_node, parse_relative_location_path(), and pugi::xpath_type_node_set.
Referenced by parse_path_expression().
xpath_ast_node* xpath_parser::parse_multiplicative_expression | ( | ) | [inline] |
Definition at line 8646 of file pugixml.cpp.
References _lexer, alloc_node(), ast_op_divide, ast_op_mod, ast_op_multiply, xpath_lexer_string::begin, xpath_lexer::contents(), xpath_lexer::current(), lex_multiply, lex_string, xpath_lexer::next(), parse_unary_expression(), PUGIXML_TEXT, and pugi::xpath_type_number.
Referenced by parse_additive_expression().
nodetest_t xpath_parser::parse_node_test_type | ( | const xpath_lexer_string & | name | ) | [inline] |
Definition at line 8244 of file pugixml.cpp.
References xpath_lexer_string::begin, nodetest_none, nodetest_type_comment, nodetest_type_node, nodetest_type_pi, nodetest_type_text, and PUGIXML_TEXT.
Referenced by parse_path_expression(), and parse_step().
xpath_ast_node* xpath_parser::parse_or_expression | ( | ) | [inline] |
Definition at line 8739 of file pugixml.cpp.
References _lexer, alloc_node(), ast_op_or, xpath_lexer::contents(), xpath_lexer::current(), lex_string, xpath_lexer::next(), parse_and_expression(), PUGIXML_TEXT, and pugi::xpath_type_boolean.
Referenced by parse_expression().
xpath_ast_node* xpath_parser::parse_path_expression | ( | ) | [inline] |
Definition at line 8570 of file pugixml.cpp.
References _lexer, alloc_node(), ast_step, axis_descendant_or_self, xpath_lexer::contents(), ct_space, xpath_lexer::current(), lex_double_slash, lex_number, lex_open_brace, lex_quoted_string, lex_slash, lex_string, lex_var_ref, xpath_lexer::next(), nodetest_none, nodetest_type_node, parse_filter_expression(), parse_location_path(), parse_node_test_type(), parse_relative_location_path(), PUGI__IS_CHARTYPE, xpath_ast_node::rettype(), xpath_lexer::state(), state, throw_error(), and pugi::xpath_type_node_set.
Referenced by parse_union_expression().
xpath_ast_node* xpath_parser::parse_primary_expression | ( | ) | [inline] |
Definition at line 8278 of file pugixml.cpp.
References _lexer, _variables, alloc_node(), alloc_string(), ast_number_constant, ast_string_constant, ast_variable, xpath_lexer_string::begin, xpath_lexer::contents(), convert_string_to_number(), xpath_lexer::current(), xpath_lexer_string::end, get_variable(), lex_close_brace, lex_comma, lex_number, lex_open_brace, lex_quoted_string, lex_string, lex_var_ref, xpath_lexer::next(), parse_expression(), parse_function(), xpath_ast_node::set_next(), throw_error(), throw_error_oom(), pugi::xpath_type_number, and pugi::xpath_type_string.
Referenced by parse_filter_expression().
xpath_ast_node* xpath_parser::parse_relational_expression | ( | ) | [inline] |
Definition at line 8687 of file pugixml.cpp.
References _lexer, alloc_node(), ast_op_greater, ast_op_greater_or_equal, ast_op_less, ast_op_less_or_equal, xpath_lexer::current(), lex_greater, lex_greater_or_equal, lex_less, lex_less_or_equal, xpath_lexer::next(), parse_additive_expression(), and pugi::xpath_type_boolean.
Referenced by parse_equality_expression().
xpath_ast_node* xpath_parser::parse_relative_location_path | ( | xpath_ast_node * | set | ) | [inline] |
Definition at line 8522 of file pugixml.cpp.
References _lexer, alloc_node(), ast_step, axis_descendant_or_self, xpath_lexer::current(), lex_double_slash, lex_slash, xpath_lexer::next(), nodetest_type_node, and parse_step().
Referenced by parse_location_path(), and parse_path_expression().
xpath_ast_node* xpath_parser::parse_step | ( | xpath_ast_node * | set | ) | [inline] |
Definition at line 8403 of file pugixml.cpp.
References _lexer, alloc_node(), alloc_string(), ast_predicate, ast_step, axis_attribute, axis_child, axis_parent, axis_self, xpath_lexer_string::begin, xpath_lexer::contents(), xpath_lexer::current(), xpath_lexer_string::end, lex_axis_attribute, lex_close_brace, lex_close_square_brace, lex_dot, lex_double_colon, lex_double_dot, lex_multiply, lex_open_brace, lex_open_square_brace, lex_quoted_string, lex_string, xpath_lexer::next(), nodetest_all, nodetest_all_in_namespace, nodetest_name, nodetest_none, nodetest_pi, nodetest_type_node, parse_axis_name(), parse_expression(), parse_node_test_type(), PUGIXML_TEXT, xpath_ast_node::set_next(), xpath_ast_node::set_right(), throw_error(), and pugi::xpath_type_node_set.
Referenced by parse_relative_location_path().
xpath_ast_node* xpath_parser::parse_unary_expression | ( | ) | [inline] |
Definition at line 8632 of file pugixml.cpp.
References _lexer, alloc_node(), ast_op_negate, xpath_lexer::current(), lex_minus, xpath_lexer::next(), parse_union_expression(), and pugi::xpath_type_number.
Referenced by parse_multiplicative_expression().
xpath_ast_node* xpath_parser::parse_union_expression | ( | ) | [inline] |
Definition at line 8614 of file pugixml.cpp.
References _lexer, alloc_node(), ast_op_union, xpath_lexer::current(), lex_union, xpath_lexer::next(), parse_path_expression(), xpath_ast_node::rettype(), throw_error(), and pugi::xpath_type_node_set.
Referenced by parse_unary_expression().
void xpath_parser::throw_error | ( | const char * | message | ) | [inline] |
Definition at line 8021 of file pugixml.cpp.
References _lexer, _query, _result, and xpath_lexer::current_pos().
Referenced by parse(), parse_filter_expression(), parse_function(), parse_function_helper(), parse_path_expression(), parse_primary_expression(), parse_step(), parse_union_expression(), and throw_error_oom().
void xpath_parser::throw_error_oom | ( | ) | [inline] |
Definition at line 8032 of file pugixml.cpp.
References throw_error().
Referenced by alloc_node(), alloc_string(), and parse_primary_expression().
Definition at line 8010 of file pugixml.cpp.
Referenced by parse(), parse_additive_expression(), parse_and_expression(), parse_equality_expression(), parse_filter_expression(), parse_location_path(), parse_multiplicative_expression(), parse_or_expression(), parse_path_expression(), parse_primary_expression(), parse_relational_expression(), parse_relative_location_path(), parse_step(), parse_unary_expression(), parse_union_expression(), and throw_error().
const char_t* xpath_parser::_query |
xpath_parse_result* xpath_parser::_result |
xpath_variable_set* xpath_parser::_variables |