MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / eval_number

Method eval_number

Source/ThirdParty/pugixml/pugixml.cpp:9372–9507  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9370 }
9371
9372 double eval_number(const xpath_context& c, const xpath_stack& stack)
9373 {
9374 switch (_type)
9375 {
9376 case ast_op_add:
9377 return _left->eval_number(c, stack) + _right->eval_number(c, stack);
9378
9379 case ast_op_subtract:
9380 return _left->eval_number(c, stack) - _right->eval_number(c, stack);
9381
9382 case ast_op_multiply:
9383 return _left->eval_number(c, stack) * _right->eval_number(c, stack);
9384
9385 case ast_op_divide:
9386 return _left->eval_number(c, stack) / _right->eval_number(c, stack);
9387
9388 case ast_op_mod:
9389 return fmod(_left->eval_number(c, stack), _right->eval_number(c, stack));
9390
9391 case ast_op_negate:
9392 return -_left->eval_number(c, stack);
9393
9394 case ast_number_constant:
9395 return _data.number;
9396
9397 case ast_func_last:
9398 return static_cast<double>(c.size);
9399
9400 case ast_func_position:
9401 return static_cast<double>(c.position);
9402
9403 case ast_func_count:
9404 {
9405 xpath_allocator_capture cr(stack.result);
9406
9407 return static_cast<double>(_left->eval_node_set(c, stack, nodeset_eval_all).size());
9408 }
9409
9410 case ast_func_string_length_0:
9411 {
9412 xpath_allocator_capture cr(stack.result);
9413
9414 return static_cast<double>(string_value(c.n, stack.result).length());
9415 }
9416
9417 case ast_func_string_length_1:
9418 {
9419 xpath_allocator_capture cr(stack.result);
9420
9421 return static_cast<double>(_left->eval_string(c, stack).length());
9422 }
9423
9424 case ast_func_number_0:
9425 {
9426 xpath_allocator_capture cr(stack.result);
9427
9428 return convert_string_to_number(string_value(c.n, stack.result).c_str());
9429 }

Callers 6

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

Calls 15

fmodFunction · 0.85
string_valueClass · 0.85
convert_string_to_numberFunction · 0.85
floorFunction · 0.85
ceilFunction · 0.85
round_nearest_nzeroFunction · 0.85
eval_node_setMethod · 0.80
eval_stringMethod · 0.80
get_numberMethod · 0.80
sizeMethod · 0.45
lengthMethod · 0.45
c_strMethod · 0.45

Tested by

no test coverage detected