diff options
Diffstat (limited to 'cpp/counters.mu')
-rw-r--r-- | cpp/counters.mu | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/cpp/counters.mu b/cpp/counters.mu new file mode 100644 index 00000000..c3234d38 --- /dev/null +++ b/cpp/counters.mu @@ -0,0 +1,32 @@ +recipe init-counter [ + default-space:address:space <- new location:type, 30:literal + n:integer <- next-ingredient + reply default-space:address:space +] + +recipe increment-counter [ + default-space:address:space <- new location:type, 30:literal + 0:address:space/names:init-counter <- next-ingredient # setup outer space; it *must* come from 'init-counter' + x:integer <- next-ingredient + n:integer/space:1 <- add n:integer/space:1, x:integer + reply n:integer/space:1 +] + +recipe main [ + default-space:address:space <- new location:type, 30:literal + # counter A + a:address:space <- init-counter 34:literal + # counter B + b:address:space <- init-counter 23:literal + # increment both by 2 but in different ways + increment-counter a:address:space, 1:literal + bres:integer <- increment-counter b:address:space, 2:literal + ares:integer <- increment-counter a:address:space, 1:literal + # check results + $print [Contents of counters a ] + $print ares:integer + $print [ b ] + $print bres:integer + $print [ +] +] |