ETISS 0.8.0
Extendable Translating Instruction Set Simulator (version 0.8.0)
|
Public Member Functions | |
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) | |
void | set_next (xpath_ast_node *value) |
void | set_right (xpath_ast_node *value) |
bool | eval_boolean (const xpath_context &c, const xpath_stack &stack) |
double | eval_number (const xpath_context &c, const xpath_stack &stack) |
xpath_string | eval_string_concat (const xpath_context &c, const xpath_stack &stack) |
xpath_string | eval_string (const xpath_context &c, const xpath_stack &stack) |
xpath_node_set_raw | eval_node_set (const xpath_context &c, const xpath_stack &stack) |
bool | is_posinv () |
xpath_value_type | rettype () const |
Private Member Functions | |
xpath_ast_node (const xpath_ast_node &) | |
xpath_ast_node & | operator= (const xpath_ast_node &) |
void | apply_predicate (xpath_node_set_raw &ns, size_t first, xpath_ast_node *expr, const xpath_stack &stack) |
void | apply_predicates (xpath_node_set_raw &ns, size_t first, const xpath_stack &stack) |
void | step_push (xpath_node_set_raw &ns, const xml_attribute &a, const xml_node &parent, xpath_allocator *alloc) |
void | step_push (xpath_node_set_raw &ns, const xml_node &n, xpath_allocator *alloc) |
template<class T > | |
void | step_fill (xpath_node_set_raw &ns, const xml_node &n, xpath_allocator *alloc, T) |
template<class T > | |
void | step_fill (xpath_node_set_raw &ns, const xml_attribute &a, const xml_node &p, xpath_allocator *alloc, T v) |
template<class T > | |
xpath_node_set_raw | step_do (const xpath_context &c, const xpath_stack &stack, T v) |
Static Private Member Functions | |
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) |
Private Attributes | |
char | _type |
char | _rettype |
char | _axis |
char | _test |
xpath_ast_node * | _left |
xpath_ast_node * | _right |
xpath_ast_node * | _next |
union { | |
const char_t * string | |
double number | |
xpath_variable * variable | |
const char_t * nodetest | |
} | _data |
Definition at line 8275 of file pugixml.cpp.
|
private |
|
inline |
Definition at line 8909 of file pugixml.cpp.
References _data, ast_string_constant, and get_metrics::type.
|
inline |
Definition at line 8922 of file pugixml.cpp.
References _data, ast_number_constant, and get_metrics::type.
|
inline |
Definition at line 8935 of file pugixml.cpp.
References _data, ast_variable, and get_metrics::type.
|
inline |
Definition at line 8948 of file pugixml.cpp.
|
inline |
Definition at line 8959 of file pugixml.cpp.
References _data.
|
inlineprivate |
Definition at line 8468 of file pugixml.cpp.
References xpath_node_set_raw::begin(), c, xpath_node_set_raw::end(), eval_boolean(), eval_number(), rettype(), xpath_node_set_raw::size(), xpath_node_set_raw::truncate(), and pugi::xpath_type_number.
Referenced by apply_predicates(), and eval_node_set().
|
inlineprivate |
Definition at line 8494 of file pugixml.cpp.
References _next, _right, apply_predicate(), and xpath_node_set_raw::size().
Referenced by step_do().
|
inlinestaticprivate |
Definition at line 8306 of file pugixml.cpp.
References xpath_node_set_raw::begin(), c, xpath_string::c_str(), convert_string_to_number(), xpath_node_set_raw::end(), eval_boolean(), eval_node_set(), eval_number(), eval_string(), xpath_stack::result, rettype(), string_value(), swap(), pugi::xpath_type_boolean, pugi::xpath_type_node_set, pugi::xpath_type_number, and pugi::xpath_type_string.
Referenced by eval_boolean().
|
inlinestaticprivate |
Definition at line 8396 of file pugixml.cpp.
References xpath_node_set_raw::begin(), c, xpath_string::c_str(), convert_string_to_number(), xpath_node_set_raw::end(), eval_node_set(), eval_number(), xpath_stack::result, rettype(), string_value(), and pugi::xpath_type_node_set.
Referenced by eval_boolean().
|
inline |
Definition at line 8975 of file pugixml.cpp.
References _data, _left, _rettype, _right, _type, ast_func_boolean, ast_func_contains, ast_func_false, ast_func_lang, ast_func_not, ast_func_starts_with, ast_func_true, ast_op_and, ast_op_equal, ast_op_greater, ast_op_greater_or_equal, ast_op_less, ast_op_less_or_equal, ast_op_not_equal, ast_op_or, ast_variable, c, xpath_string::c_str(), compare_eq(), compare_rel(), convert_number_to_boolean(), xpath_string::empty(), xpath_node_set_raw::empty(), eval_boolean(), eval_node_set(), eval_number(), eval_string(), find_substring(), PUGIXML_TEXT, xpath_stack::result, starts_with(), tolower_ascii(), pugi::xpath_type_boolean, pugi::xpath_type_node_set, pugi::xpath_type_number, and pugi::xpath_type_string.
Referenced by apply_predicate(), compare_eq(), eval_boolean(), eval_number(), and eval_string().
|
inline |
Definition at line 9520 of file pugixml.cpp.
References _axis, _data, _left, _rettype, _right, _type, xpath_node_set_raw::append(), apply_predicate(), ast_filter, ast_filter_posinv, ast_func_id, ast_op_union, ast_step, ast_step_root, ast_variable, 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_node_set_raw::begin(), c, xpath_node_set_raw::end(), eval_node_set(), xpath_node_set_raw::push_back(), xpath_node_set_raw::remove_duplicates(), xpath_stack::result, s, xpath_node_set_raw::set_type(), xpath_node_set_raw::sort_do(), step_do(), xpath_stack::temp, and pugi::xpath_type_node_set.
Referenced by compare_eq(), compare_rel(), eval_boolean(), eval_node_set(), eval_number(), eval_string(), and step_do().
|
inline |
Definition at line 9106 of file pugixml.cpp.
References _data, _left, _rettype, _right, _type, ast_func_ceiling, ast_func_count, ast_func_floor, ast_func_last, ast_func_number_0, ast_func_number_1, ast_func_position, ast_func_round, ast_func_string_length_0, ast_func_string_length_1, ast_func_sum, ast_number_constant, ast_op_add, ast_op_divide, ast_op_mod, ast_op_multiply, ast_op_negate, ast_op_subtract, ast_variable, xpath_node_set_raw::begin(), c, xpath_string::c_str(), ceil, convert_string_to_number(), xpath_node_set_raw::end(), eval_boolean(), eval_node_set(), eval_number(), eval_string(), floor, fmod, xpath_string::length(), xpath_stack::result, round_nearest_nzero(), xpath_node_set_raw::size(), string_value(), pugi::xpath_type_boolean, pugi::xpath_type_node_set, pugi::xpath_type_number, and pugi::xpath_type_string.
Referenced by apply_predicate(), compare_eq(), compare_rel(), eval_boolean(), eval_number(), and eval_string().
|
inline |
Definition at line 9294 of file pugixml.cpp.
References _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_string_constant, ast_variable, c, xpath_string::c_str(), convert_number_to_string(), xpath_node_set_raw::empty(), eval_boolean(), eval_node_set(), eval_number(), eval_string(), eval_string_concat(), find_substring(), xpath_node_set_raw::first(), is_nan(), xpath_string::length(), local_name(), namespace_uri(), normalize_space(), PUGIXML_TEXT, qualified_name(), xpath_stack::result, round_nearest(), s, string_value(), xpath_stack::temp, translate(), xpath_string_const(), pugi::xpath_type_boolean, pugi::xpath_type_node_set, pugi::xpath_type_number, and pugi::xpath_type_string.
Referenced by compare_eq(), eval_boolean(), eval_number(), eval_string(), eval_string_concat(), and evaluate_string_impl().
|
inline |
Definition at line 9242 of file pugixml.cpp.
References _left, _next, _right, _type, xpath_allocator::allocate(), ast_func_concat, c, eval_string(), length(), xpath_stack::result, and xpath_stack::temp.
Referenced by eval_string().
|
inline |
Definition at line 9650 of file pugixml.cpp.
References _left, _next, _right, _type, ast_filter, ast_filter_posinv, ast_func_position, ast_number_constant, ast_predicate, ast_step, ast_step_root, ast_string_constant, ast_variable, and is_posinv().
Referenced by is_posinv(), and xpath_parser::parse_filter_expression().
|
private |
|
inline |
Definition at line 9683 of file pugixml.cpp.
References _rettype.
Referenced by apply_predicate(), compare_eq(), compare_rel(), xpath_parser::parse_expression_rec(), xpath_parser::parse_filter_expression(), xpath_parser::parse_path_or_unary_expression(), and xpath_parser::parse_step().
|
inline |
Definition at line 8971 of file pugixml.cpp.
References _next.
Referenced by xpath_parser::parse_primary_expression(), and xpath_parser::parse_step().
|
inline |
Definition at line 8973 of file pugixml.cpp.
References _right.
Referenced by xpath_parser::parse_step().
|
inlineprivate |
Definition at line 8850 of file pugixml.cpp.
References _left, apply_predicates(), axis_ancestor, axis_ancestor_or_self, axis_attribute, axis_child, axis_descendant_or_self, axis_following, axis_parent, axis_preceding, axis_preceding_sibling, axis_self, c, eval_node_set(), xpath_node_set_raw::remove_duplicates(), xpath_stack::result, s, xpath_node_set_raw::set_type(), xpath_node_set_raw::size(), step_fill(), xpath_node_set_raw::type(), and v.
Referenced by eval_node_set().
|
inlineprivate |
Definition at line 8769 of file pugixml.cpp.
References _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(), and v.
|
inlineprivate |
Definition at line 8590 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_parent, axis_preceding, axis_preceding_sibling, axis_self, c, node_is_ancestor(), and step_push().
Referenced by step_do(), and step_fill().
|
inlineprivate |
Definition at line 8505 of file pugixml.cpp.
References _data, _test, nodetest_all, nodetest_all_in_namespace, nodetest_name, nodetest_type_node, PUGIXML_TEXT, xpath_node_set_raw::push_back(), starts_with(), and strequal().
Referenced by step_fill().
|
inlineprivate |
Definition at line 8538 of file pugixml.cpp.
References _data, _test, pugi::node_cdata, pugi::node_comment, pugi::node_element, pugi::node_pcdata, pugi::node_pi, nodetest_all, nodetest_all_in_namespace, nodetest_name, nodetest_pi, nodetest_type_comment, nodetest_type_node, nodetest_type_pi, nodetest_type_text, xpath_node_set_raw::push_back(), starts_with(), and strequal().
|
private |
Definition at line 8283 of file pugixml.cpp.
Referenced by eval_node_set().
union { ... } xpath_ast_node::_data |
Referenced by eval_boolean(), eval_node_set(), eval_number(), eval_string(), step_push(), and xpath_ast_node().
|
private |
Definition at line 8287 of file pugixml.cpp.
Referenced by eval_boolean(), eval_node_set(), eval_number(), eval_string(), eval_string_concat(), is_posinv(), and step_do().
|
private |
Definition at line 8289 of file pugixml.cpp.
Referenced by apply_predicates(), eval_string(), eval_string_concat(), is_posinv(), and set_next().
|
private |
Definition at line 8280 of file pugixml.cpp.
Referenced by eval_boolean(), eval_node_set(), eval_number(), eval_string(), and rettype().
|
private |
Definition at line 8288 of file pugixml.cpp.
Referenced by apply_predicates(), eval_boolean(), eval_node_set(), eval_number(), eval_string(), eval_string_concat(), is_posinv(), and set_right().
|
private |
Definition at line 8284 of file pugixml.cpp.
Referenced by step_fill(), and step_push().
|
private |
Definition at line 8279 of file pugixml.cpp.
Referenced by eval_boolean(), eval_node_set(), eval_number(), eval_string(), eval_string_concat(), and is_posinv().
const char_t* xpath_ast_node::nodetest |
Definition at line 8299 of file pugixml.cpp.
double xpath_ast_node::number |
Definition at line 8295 of file pugixml.cpp.
const char_t* xpath_ast_node::string |
Definition at line 8293 of file pugixml.cpp.
xpath_variable* xpath_ast_node::variable |
Definition at line 8297 of file pugixml.cpp.