diff options
| author | Julian Blake Kongslie | 2022-06-25 23:20:28 -0700 |
|---|---|---|
| committer | Julian Blake Kongslie | 2022-06-25 23:20:28 -0700 |
| commit | b5608dc9d4739dbb97798d83fd7821a051c6afe2 (patch) | |
| tree | f17ed20c99e1a4b55ebd27d9c853f815ee537dc3 /main.cpp | |
| parent | Remove unneeded std::move calls. (diff) | |
| download | issim-b5608dc9d4739dbb97798d83fd7821a051c6afe2.tar.xz | |
Use a separate EvalContext structure for holding some state.
Diffstat (limited to 'main.cpp')
| -rw-r--r-- | main.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
| @@ -1,6 +1,7 @@ | |||
| 1 | #include <initializer_list> | 1 | #include <initializer_list> |
| 2 | #include <iostream> | 2 | #include <iostream> |
| 3 | #include <map> | 3 | #include <map> |
| 4 | #include <memory> | ||
| 4 | #include <optional> | 5 | #include <optional> |
| 5 | #include <string> | 6 | #include <string> |
| 6 | #include <type_traits> | 7 | #include <type_traits> |
| @@ -69,18 +70,18 @@ int main(int argc, const char *argv[]) | |||
| 69 | 70 | ||
| 70 | std::cout << "\n\n\n"; | 71 | std::cout << "\n\n\n"; |
| 71 | 72 | ||
| 72 | auto w = state.eval(step); | 73 | auto w = state(step); |
| 73 | std::cout << "run\n"; w(); | 74 | std::cout << "run\n"; w->resume(); |
| 74 | std::cout << "run\n"; w(); | 75 | std::cout << "run\n"; w->resume(); |
| 75 | std::cout << "run\n"; w(); | 76 | std::cout << "run\n"; w->resume(); |
| 76 | std::cout << "set predicate (valid)\n"; state.store_reg(step.predicate->first, step.predicate->second); | 77 | std::cout << "set predicate (valid)\n"; state.store_reg(step.predicate->first, step.predicate->second); |
| 77 | std::cout << "run\n"; w(); | 78 | std::cout << "run\n"; w->resume(); |
| 78 | std::cout << "run\n"; w(); | 79 | std::cout << "run\n"; w->resume(); |
| 79 | std::cout << "run\n"; w(); | 80 | std::cout << "run\n"; w->resume(); |
| 80 | std::cout << "set regs (all)\n"; | 81 | std::cout << "set regs (all)\n"; |
| 81 | for (int i = 0; i < 10; ++i) | 82 | for (int i = 0; i < 10; ++i) |
| 82 | state.store_reg(i, 1000 + i); | 83 | state.store_reg(i, 1000 + i); |
| 83 | for (bool done = false; !done; done = w()) | 84 | for (bool done = false; !done; done = w->resume()) |
| 84 | std::cout << "run\n"; | 85 | std::cout << "run\n"; |
| 85 | std::cout << "huzzah!\n"; | 86 | std::cout << "huzzah!\n"; |
| 86 | 87 | ||
