Public Member Functions | |
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_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_variable *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_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) | |
Private Member Functions | |
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_node & | operator= (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, xml_node_struct *n, xpath_allocator *alloc, bool once, T) |
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, const xpath_node &xn, xpath_allocator *alloc, bool once, T v) |
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 &) | |
Static Private Member Functions | |
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 Attributes | |
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 |
Definition at line 9136 of file pugixml.cpp.
xpath_ast_node::xpath_ast_node | ( | const xpath_ast_node & | ) | [private] |
xpath_ast_node::xpath_ast_node | ( | ast_type_t | type, |
xpath_value_type | rettype_, | ||
const char_t * | value | ||
) | [inline] |
Definition at line 9886 of file pugixml.cpp.
xpath_ast_node::xpath_ast_node | ( | ast_type_t | type, |
xpath_value_type | rettype_, | ||
double | value | ||
) | [inline] |
Definition at line 9893 of file pugixml.cpp.
xpath_ast_node::xpath_ast_node | ( | ast_type_t | type, |
xpath_value_type | rettype_, | ||
xpath_variable * | value | ||
) | [inline] |
Definition at line 9900 of file pugixml.cpp.
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] |
Definition at line 9907 of file pugixml.cpp.
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] |
Definition at line 9912 of file pugixml.cpp.
xpath_ast_node::xpath_ast_node | ( | ast_type_t | type, |
xpath_ast_node * | left, | ||
xpath_ast_node * | right, | ||
predicate_t | test | ||
) | [inline] |
Definition at line 9919 of file pugixml.cpp.
void xpath_ast_node::apply_predicate | ( | xpath_node_set_raw & | ns, |
size_t | first, | ||
const xpath_stack & | stack, | ||
bool | once | ||
) | [inline, private] |
Definition at line 9415 of file pugixml.cpp.
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 | ||
) | [inline, static, private] |
Definition at line 9335 of file pugixml.cpp.
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 | ||
) | [inline, static, private] |
Definition at line 9361 of file pugixml.cpp.
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 | ||
) | [inline, static, private] |
Definition at line 9387 of file pugixml.cpp.
void xpath_ast_node::apply_predicates | ( | xpath_node_set_raw & | ns, |
size_t | first, | ||
const xpath_stack & | stack, | ||
nodeset_eval_t | eval | ||
) | [inline, private] |
Definition at line 9429 of file pugixml.cpp.
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 | ||
) | [inline, static, private] |
Definition at line 9171 of file pugixml.cpp.
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 | ||
) | [inline, static, private] |
Definition at line 9264 of file pugixml.cpp.
bool xpath_ast_node::eval_boolean | ( | const xpath_context & | c, |
const xpath_stack & | stack | ||
) | [inline] |
Definition at line 9935 of file pugixml.cpp.
xpath_node_set_raw xpath_ast_node::eval_node_set | ( | const xpath_context & | c, |
const xpath_stack & | stack, | ||
nodeset_eval_t | eval | ||
) | [inline] |
Definition at line 10492 of file pugixml.cpp.
double xpath_ast_node::eval_number | ( | const xpath_context & | c, |
const xpath_stack & | stack | ||
) | [inline] |
Definition at line 10073 of file pugixml.cpp.
static bool xpath_ast_node::eval_once | ( | xpath_node_set::type_t | type, |
nodeset_eval_t | eval | ||
) | [inline, static, private] |
Definition at line 9259 of file pugixml.cpp.
xpath_string xpath_ast_node::eval_string | ( | const xpath_context & | c, |
const xpath_stack & | stack | ||
) | [inline] |
Definition at line 10259 of file pugixml.cpp.
xpath_string xpath_ast_node::eval_string_concat | ( | const xpath_context & | c, |
const xpath_stack & | stack | ||
) | [inline] |
Definition at line 10210 of file pugixml.cpp.
bool xpath_ast_node::is_posinv_expr | ( | ) | const [inline] |
Definition at line 10689 of file pugixml.cpp.
bool xpath_ast_node::is_posinv_step | ( | ) | const [inline] |
Definition at line 10720 of file pugixml.cpp.
xpath_ast_node& xpath_ast_node::operator= | ( | const xpath_ast_node & | ) | [private] |
void xpath_ast_node::optimize | ( | xpath_allocator * | alloc | ) | [inline] |
Definition at line 10620 of file pugixml.cpp.
void xpath_ast_node::optimize_self | ( | xpath_allocator * | alloc | ) | [inline] |
Definition at line 10629 of file pugixml.cpp.
xpath_value_type xpath_ast_node::rettype | ( | ) | const [inline] |
Definition at line 10735 of file pugixml.cpp.
void xpath_ast_node::set_next | ( | xpath_ast_node * | value | ) | [inline] |
Definition at line 9925 of file pugixml.cpp.
void xpath_ast_node::set_right | ( | xpath_ast_node * | value | ) | [inline] |
Definition at line 9930 of file pugixml.cpp.
xpath_node_set_raw xpath_ast_node::step_do | ( | const xpath_context & | c, |
const xpath_stack & | stack, | ||
nodeset_eval_t | eval, | ||
T | v | ||
) | [inline, private] |
Definition at line 9839 of file pugixml.cpp.
void xpath_ast_node::step_fill | ( | xpath_node_set_raw & | ns, |
xml_node_struct * | n, | ||
xpath_allocator * | alloc, | ||
bool | once, | ||
T | |||
) | [inline, private] |
Definition at line 9554 of file pugixml.cpp.
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 | ||
) | [inline, private] |
Definition at line 9747 of file pugixml.cpp.
void xpath_ast_node::step_fill | ( | xpath_node_set_raw & | ns, |
const xpath_node & | xn, | ||
xpath_allocator * | alloc, | ||
bool | once, | ||
T | v | ||
) | [inline, private] |
Definition at line 9828 of file pugixml.cpp.
bool xpath_ast_node::step_push | ( | xpath_node_set_raw & | ns, |
xml_attribute_struct * | a, | ||
xml_node_struct * | parent, | ||
xpath_allocator * | alloc | ||
) | [inline, private] |
Definition at line 9439 of file pugixml.cpp.
bool xpath_ast_node::step_push | ( | xpath_node_set_raw & | ns, |
xml_node_struct * | n, | ||
xpath_allocator * | alloc | ||
) | [inline, private] |
Definition at line 9479 of file pugixml.cpp.
char xpath_ast_node::_axis [private] |
Definition at line 9144 of file pugixml.cpp.
union { ... } xpath_ast_node::_data [private] |
xpath_ast_node* xpath_ast_node::_left [private] |
Definition at line 9150 of file pugixml.cpp.
xpath_ast_node* xpath_ast_node::_next [private] |
Definition at line 9152 of file pugixml.cpp.
char xpath_ast_node::_rettype [private] |
Definition at line 9141 of file pugixml.cpp.
xpath_ast_node* xpath_ast_node::_right [private] |
Definition at line 9151 of file pugixml.cpp.
char xpath_ast_node::_test [private] |
Definition at line 9147 of file pugixml.cpp.
char xpath_ast_node::_type [private] |
Definition at line 9140 of file pugixml.cpp.
const char_t* xpath_ast_node::nodetest |
Definition at line 9163 of file pugixml.cpp.
double xpath_ast_node::number |
Definition at line 9159 of file pugixml.cpp.
const char_t* xpath_ast_node::string |
Definition at line 9157 of file pugixml.cpp.
const unsigned char* xpath_ast_node::table |
Definition at line 9165 of file pugixml.cpp.
xpath_variable* xpath_ast_node::variable |
Definition at line 9161 of file pugixml.cpp.