xpath_parser Struct Reference

Collaboration diagram for xpath_parser:

Collaboration graph
[legend]

List of all members.

Public Member Functions

void throw_error (const char *message)
void throw_error_oom ()
void * alloc_node ()
const char_t * alloc_string (const xpath_lexer_string &value)
xpath_ast_nodeparse_function_helper (ast_type_t type0, ast_type_t type1, size_t argc, xpath_ast_node *args[2])
xpath_ast_nodeparse_function (const xpath_lexer_string &name, size_t argc, xpath_ast_node *args[2])
axis_t parse_axis_name (const xpath_lexer_string &name, bool &specified)
nodetest_t parse_node_test_type (const xpath_lexer_string &name)
xpath_ast_nodeparse_primary_expression ()
xpath_ast_nodeparse_filter_expression ()
xpath_ast_nodeparse_step (xpath_ast_node *set)
xpath_ast_nodeparse_relative_location_path (xpath_ast_node *set)
xpath_ast_nodeparse_location_path ()
xpath_ast_nodeparse_path_expression ()
xpath_ast_nodeparse_union_expression ()
xpath_ast_nodeparse_unary_expression ()
xpath_ast_nodeparse_multiplicative_expression ()
xpath_ast_nodeparse_additive_expression ()
xpath_ast_nodeparse_relational_expression ()
xpath_ast_nodeparse_equality_expression ()
xpath_ast_nodeparse_and_expression ()
xpath_ast_nodeparse_or_expression ()
xpath_ast_nodeparse_expression ()
 xpath_parser (const char_t *query, xpath_variable_set *variables, xpath_allocator *alloc, xpath_parse_result *result)
xpath_ast_nodeparse ()

Static Public Member Functions

static xpath_ast_nodeparse (const char_t *query, xpath_variable_set *variables, xpath_allocator *alloc, xpath_parse_result *result)

Public Attributes

xpath_allocator_alloc
xpath_lexer _lexer
const char_t * _query
xpath_variable_set * _variables
xpath_parse_result * _result


Detailed Description

Definition at line 8008 of file pugixml.cpp.


Constructor & Destructor Documentation

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.


Member Function Documentation

void* xpath_parser::alloc_node (  )  [inline]

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

axis_t xpath_parser::parse_axis_name ( const xpath_lexer_string name,
bool &  specified 
) [inline]

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

xpath_ast_node* xpath_parser::parse_filter_expression (  )  [inline]

xpath_ast_node* xpath_parser::parse_function ( const xpath_lexer_string name,
size_t  argc,
xpath_ast_node args[2] 
) [inline]

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().

Here is the call graph for this function:

Here is the caller graph for this function:

xpath_ast_node* xpath_parser::parse_location_path (  )  [inline]

xpath_ast_node* xpath_parser::parse_multiplicative_expression (  )  [inline]

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().

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

xpath_ast_node* xpath_parser::parse_path_expression (  )  [inline]

xpath_ast_node* xpath_parser::parse_primary_expression (  )  [inline]

xpath_ast_node* xpath_parser::parse_relational_expression (  )  [inline]

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().

Here is the call graph for this function:

Here is the caller graph for this function:

xpath_ast_node* xpath_parser::parse_step ( xpath_ast_node set  )  [inline]

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:

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().

Here is the call graph for this function:

Here is the caller graph for this function:


Member Data Documentation

Definition at line 8009 of file pugixml.cpp.

Referenced by alloc_node(), and alloc_string().

const char_t* xpath_parser::_query

Definition at line 8012 of file pugixml.cpp.

Referenced by throw_error().

xpath_parse_result* xpath_parser::_result

Definition at line 8015 of file pugixml.cpp.

Referenced by throw_error().

xpath_variable_set* xpath_parser::_variables

Definition at line 8013 of file pugixml.cpp.

Referenced by parse_primary_expression().


The documentation for this struct was generated from the following file:

Generated on Thu Jul 6 00:32:05 2017 for Moses by  doxygen 1.5.9