From 87267ca9e93606b70bdc0397349b176b8d142514 Mon Sep 17 00:00:00 2001 From: Li Jin Date: Tue, 27 May 2025 11:26:15 +0800 Subject: Updated `repeat` syntax functions. --- spec/inputs/loops.yue | 15 ++++++++++++++- spec/outputs/5.1/loops.lua | 28 ++++++++++++++++++++++++++++ spec/outputs/loops.lua | 28 ++++++++++++++++++++++++++++ spec/outputs/with.lua | 13 ++++++------- 4 files changed, 76 insertions(+), 8 deletions(-) (limited to 'spec') diff --git a/spec/inputs/loops.yue b/spec/inputs/loops.yue index 9a91b42..5df10ca 100644 --- a/spec/inputs/loops.yue +++ b/spec/inputs/loops.yue @@ -251,4 +251,17 @@ do if value > 5 item - +do + repeat print 1 until true + + x = repeat + a = func! + break a.x + until a.v + + items = repeat + item = getItem! + break unless item + item if item.value > 0 + until false + diff --git a/spec/outputs/5.1/loops.lua b/spec/outputs/5.1/loops.lua index bc720f6..e4f2871 100644 --- a/spec/outputs/5.1/loops.lua +++ b/spec/outputs/5.1/loops.lua @@ -587,3 +587,31 @@ do end list = _accum_0 end +do + repeat + print(1) + until true + do + local _accum_0 + repeat + a = func() + _accum_0 = a.x + break + until a.v + x = _accum_0 + end + local items + local _accum_0 = { } + local _len_0 = 1 + repeat + local item = getItem() + if not item then + break + end + if item.value > 0 then + _accum_0[_len_0] = item + _len_0 = _len_0 + 1 + end + until false + items = _accum_0 +end diff --git a/spec/outputs/loops.lua b/spec/outputs/loops.lua index 9a47579..6ab4bbb 100644 --- a/spec/outputs/loops.lua +++ b/spec/outputs/loops.lua @@ -468,3 +468,31 @@ do end list = _accum_0 end +do + repeat + print(1) + until true + do + local _accum_0 + repeat + a = func() + _accum_0 = a.x + break + until a.v + x = _accum_0 + end + local items + local _accum_0 = { } + local _len_0 = 1 + repeat + local item = getItem() + if not item then + break + end + if item.value > 0 then + _accum_0[_len_0] = item + _len_0 = _len_0 + 1 + end + until false + items = _accum_0 +end diff --git a/spec/outputs/with.lua b/spec/outputs/with.lua index 338d51f..530915e 100644 --- a/spec/outputs/with.lua +++ b/spec/outputs/with.lua @@ -192,12 +192,12 @@ do local _with_0 = item do local _accum_0 - while true do + repeat if _with_0.id > 0 then _accum_0 = _with_0.content break end - end + until true _with_0 = _accum_0 end return _with_0 @@ -207,12 +207,12 @@ do local _with_0 = tb do local _accum_0 - while true do + repeat if _with_0.v then _accum_0 = _with_0.a break end - end + until true _with_0 = _accum_0 end a = _with_0 @@ -221,13 +221,12 @@ do while true do local _with_0 = tb local _accum_1 - while true do + repeat if _with_0 ~= nil then _accum_1 = 1 break end - break - end + until true _with_0 = _accum_1 _accum_0 = _with_0 break -- cgit v1.2.3-55-g6feb