ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
Classes | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
xpath_parser Struct Reference
Collaboration diagram for xpath_parser:
Collaboration graph
[legend]

Classes

struct  binary_op_t
 

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_or_unary_expression ()
 
xpath_ast_nodeparse_expression_rec (xpath_ast_node *lhs, int limit)
 
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
 
char_t _scratch [32]
 

Detailed Description

Definition at line 9686 of file pugixml.cpp.

Constructor & Destructor Documentation

◆ xpath_parser()

xpath_parser::xpath_parser ( const char_t *  query,
xpath_variable_set *  variables,
xpath_allocator alloc,
xpath_parse_result *  result 
)
inline

Definition at line 10515 of file pugixml.cpp.

Member Function Documentation

◆ alloc_node()

void* xpath_parser::alloc_node ( )
inline

◆ alloc_string()

const char_t* xpath_parser::alloc_string ( const xpath_lexer_string value)
inline

Definition at line 9733 of file pugixml.cpp.

References _alloc, xpath_allocator::allocate_nothrow(), xpath_lexer_string::begin, c, xpath_lexer_string::end, length(), memcpy(), 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:

◆ parse() [1/2]

xpath_ast_node* xpath_parser::parse ( )
inline

Definition at line 10520 of file pugixml.cpp.

References _lexer, xpath_lexer::current(), lex_eof, parse_expression(), and throw_error().

Here is the call graph for this function:

◆ parse() [2/2]

static xpath_ast_node* xpath_parser::parse ( const char_t *  query,
xpath_variable_set *  variables,
xpath_allocator alloc,
xpath_parse_result *  result 
)
inlinestatic

Definition at line 10533 of file pugixml.cpp.

References get_metrics::parser.

◆ parse_axis_name()

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

◆ parse_expression()

xpath_ast_node* xpath_parser::parse_expression ( )
inline

Definition at line 10513 of file pugixml.cpp.

References parse_expression_rec(), and parse_path_or_unary_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:

◆ parse_expression_rec()

xpath_ast_node* xpath_parser::parse_expression_rec ( xpath_ast_node lhs,
int  limit 
)
inline

◆ parse_filter_expression()

xpath_ast_node* xpath_parser::parse_filter_expression ( )
inline

◆ parse_function()

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

◆ parse_function_helper()

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 9753 of file pugixml.cpp.

References alloc_node(), get_metrics::args, 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:

◆ parse_location_path()

xpath_ast_node* xpath_parser::parse_location_path ( )
inline

◆ parse_node_test_type()

nodetest_t xpath_parser::parse_node_test_type ( const xpath_lexer_string name)
inline

Definition at line 9953 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_or_unary_expression(), and parse_step().

Here is the caller graph for this function:

◆ parse_path_or_unary_expression()

xpath_ast_node* xpath_parser::parse_path_or_unary_expression ( )
inline

◆ parse_primary_expression()

xpath_ast_node* xpath_parser::parse_primary_expression ( )
inline

◆ parse_relative_location_path()

xpath_ast_node* xpath_parser::parse_relative_location_path ( xpath_ast_node set)
inline

Definition at line 10279 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_or_unary_expression().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ parse_step()

xpath_ast_node* xpath_parser::parse_step ( xpath_ast_node set)
inline

◆ throw_error()

void xpath_parser::throw_error ( const char *  message)
inline

Definition at line 9702 of file pugixml.cpp.

References _lexer, _query, _result, and xpath_lexer::current_pos().

Referenced by parse(), parse_expression_rec(), parse_filter_expression(), parse_function(), parse_function_helper(), parse_path_or_unary_expression(), parse_primary_expression(), parse_step(), and throw_error_oom().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ throw_error_oom()

void xpath_parser::throw_error_oom ( )
inline

Definition at line 9714 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

◆ _alloc

xpath_allocator* xpath_parser::_alloc

Definition at line 9688 of file pugixml.cpp.

Referenced by alloc_node(), and alloc_string().

◆ _lexer

xpath_lexer xpath_parser::_lexer

◆ _query

const char_t* xpath_parser::_query

Definition at line 9691 of file pugixml.cpp.

Referenced by throw_error().

◆ _result

xpath_parse_result* xpath_parser::_result

Definition at line 9694 of file pugixml.cpp.

Referenced by throw_error().

◆ _scratch

char_t xpath_parser::_scratch[32]

Definition at line 9696 of file pugixml.cpp.

Referenced by parse_primary_expression().

◆ _variables

xpath_variable_set* xpath_parser::_variables

Definition at line 9692 of file pugixml.cpp.

Referenced by parse_primary_expression().


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