aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
Diffstat (limited to 'spec')
-rw-r--r--spec/inputs/loops.yue39
-rw-r--r--spec/outputs/5.1/loops.lua104
-rw-r--r--spec/outputs/codes_from_doc.lua60
-rw-r--r--spec/outputs/codes_from_doc_zh.lua60
-rw-r--r--spec/outputs/loops.lua104
-rw-r--r--spec/outputs/macro.lua2
-rw-r--r--spec/outputs/unicode/loops.lua4
-rw-r--r--spec/outputs/unicode/macro.lua2
8 files changed, 358 insertions, 17 deletions
diff --git a/spec/inputs/loops.yue b/spec/inputs/loops.yue
index c5b28b3..9a91b42 100644
--- a/spec/inputs/loops.yue
+++ b/spec/inputs/loops.yue
@@ -213,3 +213,42 @@ do
213do 213do
214 until x := func 'a', b do 214 until x := func 'a', b do
215 print "false expected" 215 print "false expected"
216
217do
218 index = for i = 1, #tb
219 break i if tb[i]
220
221 f for i = 1, #tb
222 break i if tb[i]
223
224 f for i = 1, #tb
225 i if tb[i]
226
227 i = 1
228 ids = while tb[i]
229 i += 1
230 i - 1
231
232 i = 1
233 idx = while tb[i]
234 i += 1
235 break i - 1
236
237 f1 = ->
238 i = 1
239 f while tb[i]
240 i += 1
241 i - 1
242
243 i = 1
244 f while tb[i]
245 i += 1
246 break i - 1
247
248 list = for item in *items
249 switch item
250 when type: "A", :value
251 if value > 5
252 item
253
254
diff --git a/spec/outputs/5.1/loops.lua b/spec/outputs/5.1/loops.lua
index 57b19be..bc720f6 100644
--- a/spec/outputs/5.1/loops.lua
+++ b/spec/outputs/5.1/loops.lua
@@ -60,8 +60,8 @@ do
60 local y = hello[_index_0] 60 local y = hello[_index_0]
61 if y % 2 == 0 then 61 if y % 2 == 0 then
62 _accum_0[_len_0] = y 62 _accum_0[_len_0] = y
63 _len_0 = _len_0 + 1
63 end 64 end
64 _len_0 = _len_0 + 1
65 end 65 end
66 x = _accum_0 66 x = _accum_0
67end 67end
@@ -132,13 +132,11 @@ do
132end 132end
133do 133do
134 local _accum_0 = { } 134 local _accum_0 = { }
135 local _len_0 = 1
136 local _list_2 = 3 135 local _list_2 = 3
137 for _index_0 = 1, #_list_2 do 136 for _index_0 = 1, #_list_2 do
138 local thing = _list_2[_index_0] 137 local thing = _list_2[_index_0]
139 y = "hello" 138 y = "hello"
140 break 139 break
141 _len_0 = _len_0 + 1
142 end 140 end
143 x = _accum_0 141 x = _accum_0
144end 142end
@@ -489,3 +487,103 @@ do
489 end 487 end
490 until false 488 until false
491end 489end
490local _anon_func_0 = function(i, tb)
491 local _accum_0 = { }
492 local _len_0 = 1
493 while tb[i] do
494 i = i + 1
495 _accum_0[_len_0] = i - 1
496 _len_0 = _len_0 + 1
497 end
498 return _accum_0
499end
500do
501 local index
502 do
503 local _accum_0
504 for i = 1, #tb do
505 if tb[i] then
506 _accum_0 = i
507 break
508 end
509 end
510 index = _accum_0
511 end
512 f((function()
513 local _accum_0
514 for i = 1, #tb do
515 if tb[i] then
516 _accum_0 = i
517 break
518 end
519 end
520 return _accum_0
521 end)())
522 f((function()
523 local _accum_0 = { }
524 local _len_0 = 1
525 for i = 1, #tb do
526 if tb[i] then
527 _accum_0[_len_0] = i
528 _len_0 = _len_0 + 1
529 end
530 end
531 return _accum_0
532 end)())
533 i = 1
534 local ids
535 do
536 local _accum_0 = { }
537 local _len_0 = 1
538 while tb[i] do
539 i = i + 1
540 _accum_0[_len_0] = i - 1
541 _len_0 = _len_0 + 1
542 end
543 ids = _accum_0
544 end
545 i = 1
546 local idx
547 do
548 local _accum_0
549 while tb[i] do
550 i = i + 1
551 _accum_0 = i - 1
552 break
553 end
554 idx = _accum_0
555 end
556 local f1
557 f1 = function()
558 i = 1
559 return f(_anon_func_0(i, tb))
560 end
561 i = 1
562 f((function()
563 local _accum_0
564 while tb[i] do
565 i = i + 1
566 _accum_0 = i - 1
567 break
568 end
569 return _accum_0
570 end)())
571 local _accum_0 = { }
572 local _len_0 = 1
573 local _list_3 = items
574 for _index_0 = 1, #_list_3 do
575 local item = _list_3[_index_0]
576 local _type_0 = type(item)
577 local _tab_0 = "table" == _type_0 or "userdata" == _type_0
578 if _tab_0 then
579 local value = item.value
580 if "A" == item.type and value ~= nil then
581 if value > 5 then
582 _accum_0[_len_0] = item
583 _len_0 = _len_0 + 1
584 end
585 end
586 end
587 end
588 list = _accum_0
589end
diff --git a/spec/outputs/codes_from_doc.lua b/spec/outputs/codes_from_doc.lua
index a5412ab..644b7c3 100644
--- a/spec/outputs/codes_from_doc.lua
+++ b/spec/outputs/codes_from_doc.lua
@@ -20,6 +20,38 @@ local inventory = {
20 } 20 }
21 } 21 }
22} 22}
23local map
24map = function(arr, action)
25 local _accum_0 = { }
26 local _len_0 = 1
27 for _index_0 = 1, #arr do
28 local item = arr[_index_0]
29 _accum_0[_len_0] = action(item)
30 _len_0 = _len_0 + 1
31 end
32 return _accum_0
33end
34local filter
35filter = function(arr, cond)
36 local _accum_0 = { }
37 local _len_0 = 1
38 for _index_0 = 1, #arr do
39 local item = arr[_index_0]
40 if cond(item) then
41 _accum_0[_len_0] = item
42 _len_0 = _len_0 + 1
43 end
44 end
45 return _accum_0
46end
47local reduce
48reduce = function(arr, init, action)
49 for _index_0 = 1, #arr do
50 local item = arr[_index_0]
51 init = action(init, item)
52 end
53 return init
54end
23print(reduce(filter(map({ 55print(reduce(filter(map({
24 1, 56 1,
25 2, 57 2,
@@ -1026,12 +1058,24 @@ local _len_0 = 1
1026for i = 1, 20 do 1058for i = 1, 20 do
1027 if i % 2 == 0 then 1059 if i % 2 == 0 then
1028 _accum_0[_len_0] = i * 2 1060 _accum_0[_len_0] = i * 2
1061 _len_0 = _len_0 + 1
1029 else 1062 else
1030 _accum_0[_len_0] = i 1063 _accum_0[_len_0] = i
1064 _len_0 = _len_0 + 1
1031 end 1065 end
1032 _len_0 = _len_0 + 1
1033end 1066end
1034doubled_evens = _accum_0 1067doubled_evens = _accum_0
1068local first_large
1069local _accum_0
1070local _list_0 = numbers
1071for _index_0 = 1, #_list_0 do
1072 local n = _list_0[_index_0]
1073 if n > 10 then
1074 _accum_0 = n
1075 break
1076 end
1077end
1078first_large = _accum_0
1035local func_a 1079local func_a
1036func_a = function() 1080func_a = function()
1037 for i = 1, 10 do 1081 for i = 1, 10 do
@@ -3189,12 +3233,24 @@ local _len_0 = 1
3189for i = 1, 20 do 3233for i = 1, 20 do
3190 if i % 2 == 0 then 3234 if i % 2 == 0 then
3191 _accum_0[_len_0] = i * 2 3235 _accum_0[_len_0] = i * 2
3236 _len_0 = _len_0 + 1
3192 else 3237 else
3193 _accum_0[_len_0] = i 3238 _accum_0[_len_0] = i
3239 _len_0 = _len_0 + 1
3194 end 3240 end
3195 _len_0 = _len_0 + 1
3196end 3241end
3197doubled_evens = _accum_0 3242doubled_evens = _accum_0
3243local first_large
3244local _accum_0
3245local _list_0 = numbers
3246for _index_0 = 1, #_list_0 do
3247 local n = _list_0[_index_0]
3248 if n > 10 then
3249 _accum_0 = n
3250 break
3251 end
3252end
3253first_large = _accum_0
3198local func_a 3254local func_a
3199func_a = function() 3255func_a = function()
3200 for i = 1, 10 do 3256 for i = 1, 10 do
diff --git a/spec/outputs/codes_from_doc_zh.lua b/spec/outputs/codes_from_doc_zh.lua
index d9cc4dc..2457c52 100644
--- a/spec/outputs/codes_from_doc_zh.lua
+++ b/spec/outputs/codes_from_doc_zh.lua
@@ -20,6 +20,38 @@ local inventory = {
20 } 20 }
21 } 21 }
22} 22}
23local map
24map = function(arr, action)
25 local _accum_0 = { }
26 local _len_0 = 1
27 for _index_0 = 1, #arr do
28 local item = arr[_index_0]
29 _accum_0[_len_0] = action(item)
30 _len_0 = _len_0 + 1
31 end
32 return _accum_0
33end
34local filter
35filter = function(arr, cond)
36 local _accum_0 = { }
37 local _len_0 = 1
38 for _index_0 = 1, #arr do
39 local item = arr[_index_0]
40 if cond(item) then
41 _accum_0[_len_0] = item
42 _len_0 = _len_0 + 1
43 end
44 end
45 return _accum_0
46end
47local reduce
48reduce = function(arr, init, action)
49 for _index_0 = 1, #arr do
50 local item = arr[_index_0]
51 init = action(init, item)
52 end
53 return init
54end
23print(reduce(filter(map({ 55print(reduce(filter(map({
24 1, 56 1,
25 2, 57 2,
@@ -1020,12 +1052,24 @@ local _len_0 = 1
1020for i = 1, 20 do 1052for i = 1, 20 do
1021 if i % 2 == 0 then 1053 if i % 2 == 0 then
1022 _accum_0[_len_0] = i * 2 1054 _accum_0[_len_0] = i * 2
1055 _len_0 = _len_0 + 1
1023 else 1056 else
1024 _accum_0[_len_0] = i 1057 _accum_0[_len_0] = i
1058 _len_0 = _len_0 + 1
1025 end 1059 end
1026 _len_0 = _len_0 + 1
1027end 1060end
1028doubled_evens = _accum_0 1061doubled_evens = _accum_0
1062local first_large
1063local _accum_0
1064local _list_0 = numbers
1065for _index_0 = 1, #_list_0 do
1066 local n = _list_0[_index_0]
1067 if n > 10 then
1068 _accum_0 = n
1069 break
1070 end
1071end
1072first_large = _accum_0
1029local func_a 1073local func_a
1030func_a = function() 1074func_a = function()
1031 for i = 1, 10 do 1075 for i = 1, 10 do
@@ -3177,12 +3221,24 @@ local _len_0 = 1
3177for i = 1, 20 do 3221for i = 1, 20 do
3178 if i % 2 == 0 then 3222 if i % 2 == 0 then
3179 _accum_0[_len_0] = i * 2 3223 _accum_0[_len_0] = i * 2
3224 _len_0 = _len_0 + 1
3180 else 3225 else
3181 _accum_0[_len_0] = i 3226 _accum_0[_len_0] = i
3227 _len_0 = _len_0 + 1
3182 end 3228 end
3183 _len_0 = _len_0 + 1
3184end 3229end
3185doubled_evens = _accum_0 3230doubled_evens = _accum_0
3231local first_large
3232local _accum_0
3233local _list_0 = numbers
3234for _index_0 = 1, #_list_0 do
3235 local n = _list_0[_index_0]
3236 if n > 10 then
3237 _accum_0 = n
3238 break
3239 end
3240end
3241first_large = _accum_0
3186local func_a 3242local func_a
3187func_a = function() 3243func_a = function()
3188 for i = 1, 10 do 3244 for i = 1, 10 do
diff --git a/spec/outputs/loops.lua b/spec/outputs/loops.lua
index 8624d49..9a47579 100644
--- a/spec/outputs/loops.lua
+++ b/spec/outputs/loops.lua
@@ -60,8 +60,8 @@ do
60 local y = hello[_index_0] 60 local y = hello[_index_0]
61 if y % 2 == 0 then 61 if y % 2 == 0 then
62 _accum_0[_len_0] = y 62 _accum_0[_len_0] = y
63 _len_0 = _len_0 + 1
63 end 64 end
64 _len_0 = _len_0 + 1
65 end 65 end
66 x = _accum_0 66 x = _accum_0
67end 67end
@@ -132,13 +132,11 @@ do
132end 132end
133do 133do
134 local _accum_0 = { } 134 local _accum_0 = { }
135 local _len_0 = 1
136 local _list_2 = 3 135 local _list_2 = 3
137 for _index_0 = 1, #_list_2 do 136 for _index_0 = 1, #_list_2 do
138 local thing = _list_2[_index_0] 137 local thing = _list_2[_index_0]
139 y = "hello" 138 y = "hello"
140 break 139 break
141 _len_0 = _len_0 + 1
142 end 140 end
143 x = _accum_0 141 x = _accum_0
144end 142end
@@ -370,3 +368,103 @@ do
370 end 368 end
371 until false 369 until false
372end 370end
371local _anon_func_0 = function(i, tb)
372 local _accum_0 = { }
373 local _len_0 = 1
374 while tb[i] do
375 i = i + 1
376 _accum_0[_len_0] = i - 1
377 _len_0 = _len_0 + 1
378 end
379 return _accum_0
380end
381do
382 local index
383 do
384 local _accum_0
385 for i = 1, #tb do
386 if tb[i] then
387 _accum_0 = i
388 break
389 end
390 end
391 index = _accum_0
392 end
393 f((function()
394 local _accum_0
395 for i = 1, #tb do
396 if tb[i] then
397 _accum_0 = i
398 break
399 end
400 end
401 return _accum_0
402 end)())
403 f((function()
404 local _accum_0 = { }
405 local _len_0 = 1
406 for i = 1, #tb do
407 if tb[i] then
408 _accum_0[_len_0] = i
409 _len_0 = _len_0 + 1
410 end
411 end
412 return _accum_0
413 end)())
414 i = 1
415 local ids
416 do
417 local _accum_0 = { }
418 local _len_0 = 1
419 while tb[i] do
420 i = i + 1
421 _accum_0[_len_0] = i - 1
422 _len_0 = _len_0 + 1
423 end
424 ids = _accum_0
425 end
426 i = 1
427 local idx
428 do
429 local _accum_0
430 while tb[i] do
431 i = i + 1
432 _accum_0 = i - 1
433 break
434 end
435 idx = _accum_0
436 end
437 local f1
438 f1 = function()
439 i = 1
440 return f(_anon_func_0(i, tb))
441 end
442 i = 1
443 f((function()
444 local _accum_0
445 while tb[i] do
446 i = i + 1
447 _accum_0 = i - 1
448 break
449 end
450 return _accum_0
451 end)())
452 local _accum_0 = { }
453 local _len_0 = 1
454 local _list_3 = items
455 for _index_0 = 1, #_list_3 do
456 local item = _list_3[_index_0]
457 local _type_0 = type(item)
458 local _tab_0 = "table" == _type_0 or "userdata" == _type_0
459 if _tab_0 then
460 local value = item.value
461 if "A" == item.type and value ~= nil then
462 if value > 5 then
463 _accum_0[_len_0] = item
464 _len_0 = _len_0 + 1
465 end
466 end
467 end
468 end
469 list = _accum_0
470end
diff --git a/spec/outputs/macro.lua b/spec/outputs/macro.lua
index 4d31574..9f5507c 100644
--- a/spec/outputs/macro.lua
+++ b/spec/outputs/macro.lua
@@ -330,10 +330,8 @@ local _1
330_1 = function() 330_1 = function()
331 print(1) 331 print(1)
332 local _accum_0 = { } 332 local _accum_0 = { }
333 local _len_0 = 1
334 while false do 333 while false do
335 break 334 break
336 _len_0 = _len_0 + 1
337 end 335 end
338 return _accum_0 336 return _accum_0
339end 337end
diff --git a/spec/outputs/unicode/loops.lua b/spec/outputs/unicode/loops.lua
index 8379993..27bbe2e 100644
--- a/spec/outputs/unicode/loops.lua
+++ b/spec/outputs/unicode/loops.lua
@@ -60,8 +60,8 @@ do
60 local _u53d8_u91cfy = _u4f60_u597d[_index_0] 60 local _u53d8_u91cfy = _u4f60_u597d[_index_0]
61 if _u53d8_u91cfy % 2 == 0 then 61 if _u53d8_u91cfy % 2 == 0 then
62 _accum_0[_len_0] = _u53d8_u91cfy 62 _accum_0[_len_0] = _u53d8_u91cfy
63 _len_0 = _len_0 + 1
63 end 64 end
64 _len_0 = _len_0 + 1
65 end 65 end
66 _u53d8_u91cfx = _accum_0 66 _u53d8_u91cfx = _accum_0
67end 67end
@@ -132,13 +132,11 @@ do
132end 132end
133do 133do
134 local _accum_0 = { } 134 local _accum_0 = { }
135 local _len_0 = 1
136 local _list_2 = 3 135 local _list_2 = 3
137 for _index_0 = 1, #_list_2 do 136 for _index_0 = 1, #_list_2 do
138 local _u4e1c_u897f = _list_2[_index_0] 137 local _u4e1c_u897f = _list_2[_index_0]
139 _u53d8_u91cfy = "你好" 138 _u53d8_u91cfy = "你好"
140 break 139 break
141 _len_0 = _len_0 + 1
142 end 140 end
143 _u53d8_u91cfx = _accum_0 141 _u53d8_u91cfx = _accum_0
144end 142end
diff --git a/spec/outputs/unicode/macro.lua b/spec/outputs/unicode/macro.lua
index b14f571..3b9327a 100644
--- a/spec/outputs/unicode/macro.lua
+++ b/spec/outputs/unicode/macro.lua
@@ -365,10 +365,8 @@ local _1
365_1 = function() 365_1 = function()
366 _u6253_u5370(1) 366 _u6253_u5370(1)
367 local _accum_0 = { } 367 local _accum_0 = { }
368 local _len_0 = 1
369 while false do 368 while false do
370 break 369 break
371 _len_0 = _len_0 + 1
372 end 370 end
373 return _accum_0 371 return _accum_0
374end 372end