MCPcopy Create free account
hub / github.com/SoarGroup/Soar / test_to_string

Function test_to_string

Core/SoarKernel/src/print.cpp:385–538  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

383}
384
385char* test_to_string(test t, char* dest, size_t dest_size, bool show_equality)
386{
387
388
389 cons* c;
390 complex_test* ct;
391 char* ch;
392
393 if (!dest)
394 {
395 dest = Output_Manager::Get_OM().get_printed_output_string();
396 dest_size = output_string_size; /* from agent.h */
397 }
398 ch = dest;
399
400 if (!t)
401 {
402 strncpy(dest, "[BLANK TEST]", dest_size); /* this should never get executed */
403 dest[dest_size - 1] = 0; /* ensure null termination */
404 return dest;
405 }
406
407 if (test_is_blank_or_equality_test(t))
408 {
409 return referent_of_equality_test(t)->to_string(true, dest, dest_size);
410 }
411
412 ct = complex_test_from_test(t);
413
414 switch (ct->type)
415 {
416 case EQUALITY_TEST:
417 if (show_equality)
418 {
419 strncpy(ch, "= ", dest_size - (ch - dest));
420 ch[dest_size - (ch - dest) - 1] = 0; /* ensure null termination */
421 while (*ch)
422 {
423 ch++;
424 }
425 ct->data.referent->to_string(true, ch, dest_size - (ch - dest));
426 }
427 else
428 {
429 return (ct->data.referent->to_string(true, dest, dest_size));
430 }
431 break;
432 case NOT_EQUAL_TEST:
433 strncpy(ch, "<> ", dest_size - (ch - dest));
434 ch[dest_size - (ch - dest) - 1] = 0; /* ensure null termination */
435 while (*ch)
436 {
437 ch++;
438 }
439 ct->data.referent->to_string(true, ch, dest_size - (ch - dest));
440 break;
441 case LESS_TEST:
442 strncpy(ch, "< ", dest_size - (ch - dest));

Callers 4

xml_condition_listFunction · 0.85
print_saved_testFunction · 0.85
print_condition_listFunction · 0.85

Calls 6

Get_OMFunction · 0.85
complex_test_from_testFunction · 0.85
to_stringMethod · 0.80

Tested by

no test coverage detected