diff options
| author | Bruce Hill <bruce@bruce-hill.com> | 2018-12-14 20:21:03 -0800 |
|---|---|---|
| committer | Bruce Hill <bruce@bruce-hill.com> | 2018-12-14 20:21:03 -0800 |
| commit | 4fe63f253f58f87ab986fea38902d95f2a5ea338 (patch) | |
| tree | 12094f1c69b8ab375eb17507c959c43f9295c6c2 /core/coroutines.nom | |
| parent | 6abec65843f0f37f7fc6032ac5db0fff3db71815 (diff) | |
Auto-updated to version 5
Diffstat (limited to 'core/coroutines.nom')
| -rw-r--r-- | core/coroutines.nom | 33 |
1 files changed, 16 insertions, 17 deletions
diff --git a/core/coroutines.nom b/core/coroutines.nom index f34f0c9..9f6f6f4 100644 --- a/core/coroutines.nom +++ b/core/coroutines.nom @@ -1,4 +1,4 @@ -#!/usr/bin/env nomsu -V4.12.12.8 +#!/usr/bin/env nomsu -V5.12.12.8 # This file defines the code that creates and manipulates coroutines @@ -9,28 +9,27 @@ use "core/control_flow.nom" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ test: - %co = (..) + $co = (..) ->: yield 4 yield 5 repeat 3 times: yield 6 - %nums = [] - for % in coroutine %co: - %nums::add % - assume (%nums == [4, 5, 6, 6, 6]) or barf "Coroutine iteration failed" - %d = {x: 0} - %co2 = (..) + $nums = [] + for $ in coroutine $co: $nums|add $ + assume ($nums == [4, 5, 6, 6, 6]) or barf "Coroutine iteration failed" + $d = {x: 0} + $co2 = (..) coroutine: - %d.x += 1 + $d.x += 1 yield 1 - %d.x += 1 + $d.x += 1 yield - %d.x += 1 - repeat while ((coroutine status of %co2) != "dead"): resume %co2 - assume %d.x == 3 -(coroutine %body) parses as (coroutine from (-> %body)) -(for % in coroutine %co %body) compiles to "\ - ..for \(% as lua expr) in coroutine_wrap(\(%co as lua expr)) do - \(%body as lua) + $d.x += 1 + repeat while ((coroutine status of $co2) != "dead"): resume $co2 + assume $d.x == 3 +(coroutine $body) parses as (coroutine from (-> $body)) +(for $ in coroutine $co $body) compiles to " + for \($ as lua expr) in coroutine_wrap(\($co as lua expr)) do + \($body as lua) end" |
