MCPcopy Create free account
hub / github.com/Aloshi/EmulationStation / eval_number

Method eval_number

src/pugiXML/pugixml.cpp:8150–8285  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8148 }
8149
8150 double eval_number(const xpath_context& c, const xpath_stack& stack)
8151 {
8152 switch (_type)
8153 {
8154 case ast_op_add:
8155 return _left->eval_number(c, stack) + _right->eval_number(c, stack);
8156
8157 case ast_op_subtract:
8158 return _left->eval_number(c, stack) - _right->eval_number(c, stack);
8159
8160 case ast_op_multiply:
8161 return _left->eval_number(c, stack) * _right->eval_number(c, stack);
8162
8163 case ast_op_divide:
8164 return _left->eval_number(c, stack) / _right->eval_number(c, stack);
8165
8166 case ast_op_mod:
8167 return fmod(_left->eval_number(c, stack), _right->eval_number(c, stack));
8168
8169 case ast_op_negate:
8170 return -_left->eval_number(c, stack);
8171
8172 case ast_number_constant:
8173 return _data.number;
8174
8175 case ast_func_last:
8176 return static_cast<double>(c.size);
8177
8178 case ast_func_position:
8179 return static_cast<double>(c.position);
8180
8181 case ast_func_count:
8182 {
8183 xpath_allocator_capture cr(stack.result);
8184
8185 return static_cast<double>(_left->eval_node_set(c, stack).size());
8186 }
8187
8188 case ast_func_string_length_0:
8189 {
8190 xpath_allocator_capture cr(stack.result);
8191
8192 return static_cast<double>(string_value(c.n, stack.result).length());
8193 }
8194
8195 case ast_func_string_length_1:
8196 {
8197 xpath_allocator_capture cr(stack.result);
8198
8199 return static_cast<double>(_left->eval_string(c, stack).length());
8200 }
8201
8202 case ast_func_number_0:
8203 {
8204 xpath_allocator_capture cr(stack.result);
8205
8206 return convert_string_to_number(string_value(c.n, stack.result).c_str());
8207 }

Callers 5

compare_eqMethod · 0.80
compare_relMethod · 0.80
apply_predicateMethod · 0.80
eval_stringMethod · 0.80
evaluate_numberMethod · 0.80

Calls 9

convert_string_to_numberFunction · 0.85
round_nearest_nzeroFunction · 0.85
eval_node_setMethod · 0.80
eval_stringMethod · 0.80
get_numberMethod · 0.80
sizeMethod · 0.45
beginMethod · 0.45
endMethod · 0.45
typeMethod · 0.45

Tested by

no test coverage detected