aboutsummaryrefslogtreecommitdiff
path: root/spec/outputs/test
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2022-09-30 11:29:41 +0800
committerLi Jin <dragon-fly@qq.com>2022-09-30 11:29:41 +0800
commit5aa41b436b3fdf29f5a0046c68cb60b16fa09eb2 (patch)
tree5c5c0ecdab0d19544652bc05b70d8131e1645337 /spec/outputs/test
parenta6b6753fda9745f316f3236462b74794b35b85c9 (diff)
downloadyuescript-5aa41b436b3fdf29f5a0046c68cb60b16fa09eb2.tar.gz
yuescript-5aa41b436b3fdf29f5a0046c68cb60b16fa09eb2.tar.bz2
yuescript-5aa41b436b3fdf29f5a0046c68cb60b16fa09eb2.zip
fix issue #81, refactor continue with gotos.
Diffstat (limited to 'spec/outputs/test')
-rw-r--r--spec/outputs/test/loops_spec.lua51
1 files changed, 17 insertions, 34 deletions
diff --git a/spec/outputs/test/loops_spec.lua b/spec/outputs/test/loops_spec.lua
index 34f2e9c..9c85e1a 100644
--- a/spec/outputs/test/loops_spec.lua
+++ b/spec/outputs/test/loops_spec.lua
@@ -14,56 +14,39 @@ return describe("loops", function()
14 local _len_0 = 1 14 local _len_0 = 1
15 for _index_0 = 1, #input do 15 for _index_0 = 1, #input do
16 local x = input[_index_0] 16 local x = input[_index_0]
17 local _continue_0 = false 17 if x % 2 == 1 then
18 repeat 18 goto _continue_0
19 if x % 2 == 1 then
20 _continue_0 = true
21 break
22 end
23 _accum_0[_len_0] = x
24 _len_0 = _len_0 + 1
25 _continue_0 = true
26 until true
27 if not _continue_0 then
28 break
29 end 19 end
20 _accum_0[_len_0] = x
21 _len_0 = _len_0 + 1
22 ::_continue_0::
30 end 23 end
31 output = _accum_0 24 output = _accum_0
32 end 25 end
33 return assert.same(output, { 26 return assert.same({
34 2, 27 2,
35 4, 28 4,
36 6 29 6
37 }) 30 }, output)
38 end) 31 end)
39 return it("continue in repeat", function() 32 return it("continue in repeat", function()
40 local output = { } 33 local output = { }
41 local a = 0 34 local a = 0
42 repeat 35 repeat
43 local _cond_0 = false 36 a = a + 1
44 local _continue_0 = false 37 if a == 3 then
45 repeat 38 goto _continue_0
46 a = a + 1 39 end
47 if a == 3 then 40 if a == 5 then
48 _cond_0 = a == 8
49 _continue_0 = true
50 break
51 end
52 if a == 5 then
53 break
54 end
55 output[#output + 1] = a
56 _cond_0 = a == 8
57 _continue_0 = true
58 until true
59 if not _continue_0 then
60 break 41 break
61 end 42 end
62 until _cond_0 43 output[#output + 1] = a
63 return assert.same(output, { 44 ::_continue_0::
45 until a == 8
46 return assert.same({
64 1, 47 1,
65 2, 48 2,
66 4 49 4
67 }) 50 }, output)
68 end) 51 end)
69end) 52end)