CARLA
 
载入中...
搜索中...
未找到
Public 成员函数 | Private 成员函数 | 静态 Private 成员函数 | Private 属性 | 所有成员列表
xpath_ast_node类 参考
+ xpath_ast_node 的协作图:

Public 成员函数

bool eval_boolean (const xpath_context &c, const xpath_stack &stack)
 
xpath_node_set_raw eval_node_set (const xpath_context &c, const xpath_stack &stack, nodeset_eval_t eval)
 
double eval_number (const xpath_context &c, const xpath_stack &stack)
 
xpath_string eval_string (const xpath_context &c, const xpath_stack &stack)
 
xpath_string eval_string_concat (const xpath_context &c, const xpath_stack &stack)
 
bool is_posinv_expr () const
 
bool is_posinv_step () const
 
void optimize (xpath_allocator *alloc)
 
void optimize_self (xpath_allocator *alloc)
 
xpath_value_type rettype () const
 
void set_next (xpath_ast_node *value)
 
void set_right (xpath_ast_node *value)
 
 xpath_ast_node (ast_type_t type, xpath_ast_node *left, axis_t axis, nodetest_t test, const char_t *contents)
 
 xpath_ast_node (ast_type_t type, xpath_ast_node *left, xpath_ast_node *right, predicate_t test)
 
 xpath_ast_node (ast_type_t type, xpath_value_type rettype_, const char_t *value)
 
 xpath_ast_node (ast_type_t type, xpath_value_type rettype_, double value)
 
 xpath_ast_node (ast_type_t type, xpath_value_type rettype_, xpath_ast_node *left=0, xpath_ast_node *right=0)
 
 xpath_ast_node (ast_type_t type, xpath_value_type rettype_, xpath_variable *value)
 

Private 成员函数

void apply_predicate (xpath_node_set_raw &ns, size_t first, const xpath_stack &stack, bool once)
 
void apply_predicates (xpath_node_set_raw &ns, size_t first, const xpath_stack &stack, nodeset_eval_t eval)
 
xpath_ast_nodeoperator= (const xpath_ast_node &)
 
template<class T >
xpath_node_set_raw step_do (const xpath_context &c, const xpath_stack &stack, nodeset_eval_t eval, T v)
 
template<class T >
void step_fill (xpath_node_set_raw &ns, const xpath_node &xn, xpath_allocator *alloc, bool once, T v)
 
template<class T >
void step_fill (xpath_node_set_raw &ns, xml_attribute_struct *a, xml_node_struct *p, xpath_allocator *alloc, bool once, T v)
 
template<class T >
void step_fill (xpath_node_set_raw &ns, xml_node_struct *n, xpath_allocator *alloc, bool once, T)
 
bool step_push (xpath_node_set_raw &ns, xml_attribute_struct *a, xml_node_struct *parent, xpath_allocator *alloc)
 
bool step_push (xpath_node_set_raw &ns, xml_node_struct *n, xpath_allocator *alloc)
 
 xpath_ast_node (const xpath_ast_node &)
 

静态 Private 成员函数

static void apply_predicate_boolean (xpath_node_set_raw &ns, size_t first, xpath_ast_node *expr, const xpath_stack &stack, bool once)
 
static void apply_predicate_number (xpath_node_set_raw &ns, size_t first, xpath_ast_node *expr, const xpath_stack &stack, bool once)
 
static void apply_predicate_number_const (xpath_node_set_raw &ns, size_t first, xpath_ast_node *expr, const xpath_stack &stack)
 
template<class Comp >
static bool compare_eq (xpath_ast_node *lhs, xpath_ast_node *rhs, const xpath_context &c, const xpath_stack &stack, const Comp &comp)
 
template<class Comp >
static bool compare_rel (xpath_ast_node *lhs, xpath_ast_node *rhs, const xpath_context &c, const xpath_stack &stack, const Comp &comp)
 
static bool eval_once (xpath_node_set::type_t type, nodeset_eval_t eval)
 

Private 属性

char _axis
 
union { 
 
   const char_t *   nodetest 
 
   double   number 
 
   const char_t *   string 
 
   const unsigned char *   table 
 
   xpath_variable *   variable 
 
_data 
 
xpath_ast_node_left
 
xpath_ast_node_next
 
char _rettype
 
xpath_ast_node_right
 
char _test
 
char _type
 

详细描述

在文件 pugixml.cpp9380 行定义.

构造及析构函数说明

◆ xpath_ast_node() [1/7]

xpath_ast_node::xpath_ast_node ( const xpath_ast_node & )
private

◆ xpath_ast_node() [2/7]

xpath_ast_node::xpath_ast_node ( ast_type_t type,
xpath_value_type rettype_,
const char_t * value )
inline

在文件 pugixml.cpp10130 行定义.

引用了 _data , 以及 ast_string_constant.

◆ xpath_ast_node() [3/7]

xpath_ast_node::xpath_ast_node ( ast_type_t type,
xpath_value_type rettype_,
double value )
inline

在文件 pugixml.cpp10137 行定义.

引用了 _data , 以及 ast_number_constant.

◆ xpath_ast_node() [4/7]

xpath_ast_node::xpath_ast_node ( ast_type_t type,
xpath_value_type rettype_,
xpath_variable * value )
inline

在文件 pugixml.cpp10144 行定义.

引用了 _data , 以及 ast_variable.

◆ xpath_ast_node() [5/7]

xpath_ast_node::xpath_ast_node ( ast_type_t type,
xpath_value_type rettype_,
xpath_ast_node * left = 0,
xpath_ast_node * right = 0 )
inline

在文件 pugixml.cpp10151 行定义.

◆ xpath_ast_node() [6/7]

xpath_ast_node::xpath_ast_node ( ast_type_t type,
xpath_ast_node * left,
axis_t axis,
nodetest_t test,
const char_t * contents )
inline

在文件 pugixml.cpp10156 行定义.

引用了 _data , 以及 ast_step.

◆ xpath_ast_node() [7/7]

xpath_ast_node::xpath_ast_node ( ast_type_t type,
xpath_ast_node * left,
xpath_ast_node * right,
predicate_t test )
inline

在文件 pugixml.cpp10163 行定义.

引用了 ast_filter , 以及 ast_predicate.

成员函数说明

◆ apply_predicate()

void xpath_ast_node::apply_predicate ( xpath_node_set_raw & ns,
size_t first,
const xpath_stack & stack,
bool once )
inlineprivate

在文件 pugixml.cpp9659 行定义.

引用了 _right, _test, _type, apply_predicate_boolean(), apply_predicate_number(), apply_predicate_number_const(), ast_filter, ast_predicate, predicate_constant, predicate_constant_one, rettype() , 以及 xpath_node_set_raw::size().

被这些函数引用 eval_node_set().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ apply_predicate_boolean()

static void xpath_ast_node::apply_predicate_boolean ( xpath_node_set_raw & ns,
size_t first,
xpath_ast_node * expr,
const xpath_stack & stack,
bool once )
inlinestaticprivate

在文件 pugixml.cpp9579 行定义.

引用了 xpath_node_set_raw::begin(), xpath_node_set_raw::end(), eval_boolean(), rettype(), xpath_node_set_raw::size() , 以及 xpath_node_set_raw::truncate().

被这些函数引用 apply_predicate().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ apply_predicate_number()

static void xpath_ast_node::apply_predicate_number ( xpath_node_set_raw & ns,
size_t first,
xpath_ast_node * expr,
const xpath_stack & stack,
bool once )
inlinestaticprivate

在文件 pugixml.cpp9605 行定义.

引用了 xpath_node_set_raw::begin(), xpath_node_set_raw::end(), eval_number(), rettype(), xpath_node_set_raw::size() , 以及 xpath_node_set_raw::truncate().

被这些函数引用 apply_predicate().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ apply_predicate_number_const()

static void xpath_ast_node::apply_predicate_number_const ( xpath_node_set_raw & ns,
size_t first,
xpath_ast_node * expr,
const xpath_stack & stack )
inlinestaticprivate

在文件 pugixml.cpp9631 行定义.

引用了 xpath_node_set_raw::begin(), eval_number(), rettype(), xpath_node_set_raw::size() , 以及 xpath_node_set_raw::truncate().

被这些函数引用 apply_predicate().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ apply_predicates()

void xpath_ast_node::apply_predicates ( xpath_node_set_raw & ns,
size_t first,
const xpath_stack & stack,
nodeset_eval_t eval )
inlineprivate

在文件 pugixml.cpp9673 行定义.

引用了 _next, _right, eval_once(), xpath_node_set_raw::size() , 以及 xpath_node_set_raw::type().

被这些函数引用 step_do().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ compare_eq()

template<class Comp >
static bool xpath_ast_node::compare_eq ( xpath_ast_node * lhs,
xpath_ast_node * rhs,
const xpath_context & c,
const xpath_stack & stack,
const Comp & comp )
inlinestaticprivate

在文件 pugixml.cpp9415 行定义.

引用了 xpath_node_set_raw::begin(), xpath_string::c_str(), convert_string_to_number(), xpath_node_set_raw::end(), eval_boolean(), eval_node_set(), eval_number(), eval_string(), nodeset_eval_all, xpath_stack::result, rettype(), string_value() , 以及 swap().

被这些函数引用 eval_boolean().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ compare_rel()

template<class Comp >
static bool xpath_ast_node::compare_rel ( xpath_ast_node * lhs,
xpath_ast_node * rhs,
const xpath_context & c,
const xpath_stack & stack,
const Comp & comp )
inlinestaticprivate

在文件 pugixml.cpp9508 行定义.

引用了 xpath_node_set_raw::begin(), xpath_string::c_str(), convert_string_to_number(), xpath_node_set_raw::end(), eval_node_set(), eval_number(), nodeset_eval_all, xpath_stack::result, rettype() , 以及 string_value().

被这些函数引用 eval_boolean().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ eval_boolean()

bool xpath_ast_node::eval_boolean ( const xpath_context & c,
const xpath_stack & stack )
inline

◆ eval_node_set()

xpath_node_set_raw xpath_ast_node::eval_node_set ( const xpath_context & c,
const xpath_stack & stack,
nodeset_eval_t eval )
inline

◆ eval_number()

double xpath_ast_node::eval_number ( const xpath_context & c,
const xpath_stack & stack )
inline

◆ eval_once()

static bool xpath_ast_node::eval_once ( xpath_node_set::type_t type,
nodeset_eval_t eval )
inlinestaticprivate

在文件 pugixml.cpp9503 行定义.

引用了 nodeset_eval_all , 以及 nodeset_eval_any.

被这些函数引用 apply_predicates(), eval_node_set() , 以及 step_do().

+ 这是这个函数的调用关系图:

◆ eval_string()

xpath_string xpath_ast_node::eval_string ( const xpath_context & c,
const xpath_stack & stack )
inline

在文件 pugixml.cpp10494 行定义.

引用了 _data, _left, _next, _rettype, _right, _type, ast_func_concat, 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_string_0, ast_func_string_1, ast_func_substring_2, ast_func_substring_3, ast_func_substring_after, ast_func_substring_before, ast_func_translate, ast_opt_translate_table, ast_string_constant, ast_variable, xpath_string::c_str(), convert_number_to_string(), xpath_string::data(), xpath_node_set_raw::empty(), eval_boolean(), eval_node_set(), eval_number(), eval_string(), eval_string_concat(), find_substring(), xpath_node_set_raw::first(), xpath_string::from_const(), xpath_string::from_heap(), xpath_string::from_heap_preallocated(), is_nan(), xpath_string::length(), local_name(), xpath_context::n, namespace_uri(), nodeset_eval_first, normalize_space(), PUGIXML_TEXT, qualified_name(), xpath_stack::result, round_nearest(), string_value(), xpath_stack::temp, translate(), translate_table() , 以及 xpath_string::uses_heap().

被这些函数引用 compare_eq(), eval_boolean(), eval_number(), eval_string() , 以及 eval_string_concat().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ eval_string_concat()

xpath_string xpath_ast_node::eval_string_concat ( const xpath_context & c,
const xpath_stack & stack )
inline

在文件 pugixml.cpp10452 行定义.

引用了 _left, _next, _right, _type, xpath_allocator::allocate(), ast_func_concat, eval_string(), xpath_string::from_heap_preallocated(), xpath_stack::result , 以及 xpath_stack::temp.

被这些函数引用 eval_string().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ is_posinv_expr()

bool xpath_ast_node::is_posinv_expr ( ) const
inline

在文件 pugixml.cpp10935 行定义.

引用了 _left, _next, _right, _type, ast_filter, ast_func_last, ast_func_position, ast_number_constant, ast_predicate, ast_step, ast_step_root, ast_string_constant, ast_variable , 以及 is_posinv_expr().

被这些函数引用 is_posinv_expr() , 以及 optimize_self().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ is_posinv_step()

bool xpath_ast_node::is_posinv_step ( ) const
inline

在文件 pugixml.cpp10966 行定义.

引用了 _next, _right, _type, ast_predicate, ast_step , 以及 predicate_posinv.

被这些函数引用 optimize_self().

+ 这是这个函数的调用关系图:

◆ operator=()

xpath_ast_node & xpath_ast_node::operator= ( const xpath_ast_node & )
private

◆ optimize()

void xpath_ast_node::optimize ( xpath_allocator * alloc)
inline

在文件 pugixml.cpp10861 行定义.

引用了 _left, _next, _right, optimize() , 以及 optimize_self().

被这些函数引用 optimize().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ optimize_self()

void xpath_ast_node::optimize_self ( xpath_allocator * alloc)
inline

在文件 pugixml.cpp10875 行定义.

引用了 _axis, _data, _left, _next, _rettype, _right, _test, _type, ast_filter, ast_func_last, ast_func_position, ast_func_translate, ast_number_constant, ast_op_equal, ast_opt_compare_attribute, ast_opt_translate_table, ast_predicate, ast_step, ast_string_constant, ast_variable, axis_attribute, axis_child, axis_descendant, axis_descendant_or_self, axis_self, is_posinv_expr(), is_posinv_step(), nodetest_name, nodetest_type_node, number, predicate_constant, predicate_constant_one, predicate_default, predicate_posinv, string, table , 以及 translate_table_generate().

被这些函数引用 optimize().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ rettype()

xpath_value_type xpath_ast_node::rettype ( ) const
inline

在文件 pugixml.cpp10981 行定义.

引用了 _rettype.

被这些函数引用 apply_predicate(), apply_predicate_boolean(), apply_predicate_number(), apply_predicate_number_const(), compare_eq(), compare_rel(), evaluate_node_set_prepare(), xpath_parser::parse_expression_rec(), xpath_parser::parse_filter_expression(), xpath_parser::parse_path_or_unary_expression() , 以及 xpath_parser::parse_step().

+ 这是这个函数的调用关系图:

◆ set_next()

void xpath_ast_node::set_next ( xpath_ast_node * value)
inline

在文件 pugixml.cpp10169 行定义.

引用了 _next.

被这些函数引用 xpath_parser::parse_primary_expression() , 以及 xpath_parser::parse_step().

+ 这是这个函数的调用关系图:

◆ set_right()

void xpath_ast_node::set_right ( xpath_ast_node * value)
inline

在文件 pugixml.cpp10174 行定义.

引用了 _right.

被这些函数引用 xpath_parser::parse_step().

+ 这是这个函数的调用关系图:

◆ step_do()

template<class T >
xpath_node_set_raw xpath_ast_node::step_do ( const xpath_context & c,
const xpath_stack & stack,
nodeset_eval_t eval,
T v )
inlineprivate

在文件 pugixml.cpp10083 行定义.

引用了 _left, _next, _right, _test, apply_predicates(), axis_ancestor, axis_ancestor_or_self, axis_attribute, axis_child, axis_preceding, axis_preceding_sibling, axis_self, xpath_node_set_raw::begin(), xpath_node_set_raw::end(), eval_node_set(), eval_once(), xpath_context::n, nodeset_eval_all, nodetest_name, predicate_constant_one, xpath_node_set_raw::remove_duplicates(), xpath_stack::result, xpath_node_set_raw::set_type(), xpath_node_set_raw::size(), step_fill() , 以及 xpath_node_set_raw::type().

被这些函数引用 eval_node_set().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ step_fill() [1/3]

template<class T >
void xpath_ast_node::step_fill ( xpath_node_set_raw & ns,
const xpath_node & xn,
xpath_allocator * alloc,
bool once,
T v )
inlineprivate

在文件 pugixml.cpp10072 行定义.

引用了 axis_ancestor, axis_ancestor_or_self, axis_descendant_or_self, axis_following, axis_parent, axis_preceding, axis_self , 以及 step_fill().

+ 函数调用图:

◆ step_fill() [2/3]

template<class T >
void xpath_ast_node::step_fill ( xpath_node_set_raw & ns,
xml_attribute_struct * a,
xml_node_struct * p,
xpath_allocator * alloc,
bool once,
T v )
inlineprivate

在文件 pugixml.cpp9991 行定义.

引用了 _test, axis_ancestor, axis_ancestor_or_self, axis_descendant_or_self, axis_following, axis_parent, axis_preceding, axis_self, nodetest_type_node, step_fill() , 以及 step_push().

+ 函数调用图:

◆ step_fill() [3/3]

template<class T >
void xpath_ast_node::step_fill ( xpath_node_set_raw & ns,
xml_node_struct * n,
xpath_allocator * alloc,
bool once,
T  )
inlineprivate

在文件 pugixml.cpp9798 行定义.

引用了 axis_ancestor, axis_ancestor_or_self, axis_attribute, axis_child, axis_descendant, axis_descendant_or_self, axis_following, axis_following_sibling, axis_parent, axis_preceding, axis_preceding_sibling, axis_self, node_is_ancestor() , 以及 step_push().

被这些函数引用 step_do(), step_fill() , 以及 step_fill().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ step_push() [1/2]

bool xpath_ast_node::step_push ( xpath_node_set_raw & ns,
xml_attribute_struct * a,
xml_node_struct * parent,
xpath_allocator * alloc )
inlineprivate

在文件 pugixml.cpp9683 行定义.

引用了 _data, _test, is_xpath_attribute(), nodetest_all, nodetest_all_in_namespace, nodetest_name, nodetest_type_node, PUGIXML_TEXT, xpath_node_set_raw::push_back(), starts_with() , 以及 strequal().

被这些函数引用 step_fill() , 以及 step_fill().

+ 函数调用图:
+ 这是这个函数的调用关系图:

◆ step_push() [2/2]

bool xpath_ast_node::step_push ( xpath_node_set_raw & ns,
xml_node_struct * n,
xpath_allocator * alloc )
inlineprivate

在文件 pugixml.cpp9723 行定义.

引用了 _data, _test, nodetest_all, nodetest_all_in_namespace, nodetest_name, nodetest_pi, nodetest_type_comment, nodetest_type_node, nodetest_type_pi, nodetest_type_text, PUGI__NODETYPE, xpath_node_set_raw::push_back(), starts_with() , 以及 strequal().

+ 函数调用图:

类成员变量说明

◆ _axis

char xpath_ast_node::_axis
private

在文件 pugixml.cpp9388 行定义.

被这些函数引用 eval_node_set() , 以及 optimize_self().

◆ [union]

union { ... } xpath_ast_node::_data

◆ _left

xpath_ast_node* xpath_ast_node::_left
private

◆ _next

xpath_ast_node* xpath_ast_node::_next
private

◆ _rettype

char xpath_ast_node::_rettype
private

在文件 pugixml.cpp9385 行定义.

被这些函数引用 eval_boolean(), eval_node_set(), eval_number(), eval_string(), optimize_self() , 以及 rettype().

◆ _right

xpath_ast_node* xpath_ast_node::_right
private

◆ _test

char xpath_ast_node::_test
private

在文件 pugixml.cpp9391 行定义.

被这些函数引用 apply_predicate(), eval_node_set(), optimize_self(), step_do(), step_fill(), step_push() , 以及 step_push().

◆ _type

char xpath_ast_node::_type
private

◆ nodetest

const char_t* xpath_ast_node::nodetest

在文件 pugixml.cpp9407 行定义.

被这些函数引用 eval_boolean().

◆ number

double xpath_ast_node::number

在文件 pugixml.cpp9403 行定义.

被这些函数引用 optimize_self().

◆ string

const char_t* xpath_ast_node::string

在文件 pugixml.cpp9401 行定义.

被这些函数引用 eval_boolean() , 以及 optimize_self().

◆ table

const unsigned char* xpath_ast_node::table

在文件 pugixml.cpp9409 行定义.

被这些函数引用 optimize_self().

◆ variable

xpath_variable* xpath_ast_node::variable

在文件 pugixml.cpp9405 行定义.

被这些函数引用 eval_boolean().


该类的文档由以下文件生成: