diff options
Diffstat (limited to 'cpp/027debug.cc')
-rw-r--r-- | cpp/027debug.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/cpp/027debug.cc b/cpp/027debug.cc new file mode 100644 index 00000000..d81071e9 --- /dev/null +++ b/cpp/027debug.cc @@ -0,0 +1,21 @@ +//: Recipe to look at elements of containers. + +:(before "End Primitive Recipe Declarations") +_PRINT, +:(before "End Primitive Recipe Numbers") +Recipe_number["$print"] = _PRINT; +:(before "End Primitive Recipe Implementations") +case _PRINT: { + if (isa_literal(current_instruction().ingredients[0])) { + trace("run") << "$print: " << current_instruction().ingredients[0].name; + cout << current_instruction().ingredients[0].name; + break; + } + vector<int> result(read_memory(current_instruction().ingredients[0])); + for (size_t i = 0; i < result.size(); ++i) { + trace("run") << "$print: " << result[i]; + if (i > 0) cout << " "; + cout << result[i]; + } + break; +} |