aboutsummaryrefslogtreecommitdiff
path: root/spec/outputs
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2023-10-22 00:55:02 +0800
committerLi Jin <dragon-fly@qq.com>2023-10-22 00:55:02 +0800
commit652a8839f885b73fff57942a9db8b26e9cb5233b (patch)
tree0b24bb5610823a831ec0addbba37cb6200203b27 /spec/outputs
parentf61a4a1d9a1b979b8a0c2e8a9c194a284f42220f (diff)
downloadyuescript-652a8839f885b73fff57942a9db8b26e9cb5233b.tar.gz
yuescript-652a8839f885b73fff57942a9db8b26e9cb5233b.tar.bz2
yuescript-652a8839f885b73fff57942a9db8b26e9cb5233b.zip
fixing issues from #152.
Diffstat (limited to 'spec/outputs')
-rw-r--r--spec/outputs/cond.lua17
-rw-r--r--spec/outputs/in_expression.lua31
-rw-r--r--spec/outputs/lists.lua65
-rw-r--r--spec/outputs/tables.lua83
-rw-r--r--spec/outputs/unicode/cond.lua17
-rw-r--r--spec/outputs/unicode/in_expression.lua31
6 files changed, 187 insertions, 57 deletions
diff --git a/spec/outputs/cond.lua b/spec/outputs/cond.lua
index 1f6aa63..651c14a 100644
--- a/spec/outputs/cond.lua
+++ b/spec/outputs/cond.lua
@@ -345,4 +345,21 @@ do
345 v = 2 345 v = 2
346 end 346 end
347end 347end
348do
349 local condChain = 1 < 2 and 2 <= 2 and 2 < 3 and 3 == 3 and 3 > 2 and 2 >= 1 and 1 == 1 and 1 < 3 and 3 ~= 5
350 local v
351 v = function(x)
352 print(x)
353 return x
354 end
355 local evaluation
356 do
357 local _cond_0 = v(2)
358 evaluation = v(1) < _cond_0 and _cond_0 <= v(3)
359 end
360 do
361 local _cond_0 = v(2)
362 evaluation = v(1) > _cond_0 and _cond_0 <= v(3)
363 end
364end
348return nil 365return nil
diff --git a/spec/outputs/in_expression.lua b/spec/outputs/in_expression.lua
index ddba69a..60802c9 100644
--- a/spec/outputs/in_expression.lua
+++ b/spec/outputs/in_expression.lua
@@ -2,43 +2,18 @@ f((function()
2 local _val_0 = -a ^ 2 2 local _val_0 = -a ^ 2
3 return 1 == _val_0 or 2 == _val_0 or 3 == _val_0 3 return 1 == _val_0 or 2 == _val_0 or 3 == _val_0
4end)()) 4end)())
5local a, b = (function(...)
6 local _val_0 = x(...)
7 return not (1 <= _val_0 and _val_0 <= 3)
8end)(...), 2
9local d
10do
11 local _val_0 = (tb.x.y(...))
12 d = not (1 <= _val_0 and _val_0 <= 3)
13end
14local has 5local has
15do 6do
16 local _val_0 = "foo" 7 local _val_0 = "foo"
17 has = "bar" == _val_0 or "foo" == _val_0 8 has = "bar" == _val_0 or "foo" == _val_0
18end 9end
19if (1 == a) and (2 == b or 3 == b or 4 == b) or (function() 10if (1 == a) and (function()
20 local _val_0 = c 11 local _val_0 = b
21 return 1 <= _val_0 and _val_0 <= 10 12 return 2 == _val_0 or 3 == _val_0 or 4 == _val_0
22end)() then 13end)() then
23 print(a, b, c) 14 print(a, b, c)
24end 15end
25do 16do
26 local _exp_0 = val
27 if 1 == _exp_0 or 2 == _exp_0 or 3 == _exp_0 then
28 print("1, 2, 3")
29 elseif not (0 < _exp_0 and _exp_0 <= 100) then
30 print("not (0 < val <= 100)")
31 elseif (200 <= _exp_0 and _exp_0 < 300) then
32 print("200 <= val < 300)")
33 elseif not (333 == _exp_0 or 444 == _exp_0 or 555 == _exp_0) then
34 print("not 333, 444 or 555")
35 end
36end
37do
38 local _val_0 = y
39 return not (a < _val_0 and _val_0 < b)
40end
41do
42 local exist 17 local exist
43 do 18 do
44 local _check_0 = list 19 local _check_0 = list
diff --git a/spec/outputs/lists.lua b/spec/outputs/lists.lua
index 581cc23..e6f306d 100644
--- a/spec/outputs/lists.lua
+++ b/spec/outputs/lists.lua
@@ -273,10 +273,73 @@ for _index_0 = 1, #test do
273 local thing = test[_index_0] 273 local thing = test[_index_0]
274 print(thing) 274 print(thing)
275end 275end
276return function() 276_ = function()
277 local _list_0 = rows 277 local _list_0 = rows
278 for _index_0 = 1, #_list_0 do 278 for _index_0 = 1, #_list_0 do
279 local row = _list_0[_index_0] 279 local row = _list_0[_index_0]
280 a = b 280 a = b
281 end 281 end
282end 282end
283do
284 local _with_0 = tb
285 f(_with_0[a])
286 f({
287 a
288 })
289 local _list_0 = f
290 for _index_0 = a, #_list_0 do
291 local v = _list_0[_index_0]
292 print(v)
293 end
294 f({ })
295 do
296 local _obj_0 = f
297 _obj_0[#_obj_0 + 1] = x
298 end
299 _with_0[a] = x
300 a = x[1]
301 _with_0[#_with_0 + 1] = x
302 do
303 local _check_0 = _with_0[1]
304 local _find_0 = false
305 for _index_0 = 1, #_check_0 do
306 local _item_0 = _check_0[_index_0]
307 if _item_0 == a then
308 _find_0 = true
309 break
310 end
311 end
312 c = _find_0
313 end
314 c = (1 == a)
315 c = (1 == a)
316 do
317 local _check_0 = {
318 1
319 }
320 local _find_0 = false
321 for _index_0 = 1, #_check_0 do
322 local _item_0 = _check_0[_index_0]
323 if _item_0 == a then
324 _find_0 = true
325 break
326 end
327 end
328 c = _find_0
329 end
330end
331do
332 a, b = hello[1], hello[2]
333 local name, job
334 do
335 local _obj_0 = person
336 name, job = _obj_0[1], _obj_0[2]
337 if name == nil then
338 name = "nameless"
339 end
340 if job == nil then
341 job = "jobless"
342 end
343 end
344end
345return nil
diff --git a/spec/outputs/tables.lua b/spec/outputs/tables.lua
index e9df1c4..f836d58 100644
--- a/spec/outputs/tables.lua
+++ b/spec/outputs/tables.lua
@@ -52,6 +52,13 @@ local x = {
52 343, 52 343,
53 343 53 343
54} 54}
55x = {
56 1,
57 2,
58 4343,
59 343,
60 343
61}
55local g, p = { 62local g, p = {
56 1, 63 1,
57 2, 64 2,
@@ -72,6 +79,17 @@ local annother = {
72 7, 79 7,
73 8 80 8
74} 81}
82annother = {
83 1,
84 2,
85 3,
86 3,
87 4,
88 5,
89 6,
90 7,
91 8
92}
75local yeah = { 93local yeah = {
76 [232] = 3434, 94 [232] = 3434,
77 "helo", 95 "helo",
@@ -435,6 +453,27 @@ do
435 _tab_0[#_tab_0 + 1] = 11 453 _tab_0[#_tab_0 + 1] = 11
436 tbMixA = _tab_0 454 tbMixA = _tab_0
437end 455end
456do
457 local _tab_0 = { }
458 local _obj_0
459 do
460 local _accum_0 = { }
461 local _len_0 = 1
462 for i = 1, 10 do
463 _accum_0[_len_0] = i
464 _len_0 = _len_0 + 1
465 end
466 _obj_0 = _accum_0
467 end
468 local _idx_0 = #_tab_0 + 1
469 for _index_0 = 1, #_obj_0 do
470 local _value_0 = _obj_0[_index_0]
471 _tab_0[_idx_0] = _value_0
472 _idx_0 = _idx_0 + 1
473 end
474 _tab_0[#_tab_0 + 1] = 11
475 tbMixA = _tab_0
476end
438local tbMixB 477local tbMixB
439do 478do
440 local _tab_0 = { } 479 local _tab_0 = { }
@@ -489,6 +528,50 @@ do
489 _tab_0[#_tab_0 + 1] = 3 528 _tab_0[#_tab_0 + 1] = 3
490 tbMixB = _tab_0 529 tbMixB = _tab_0
491end 530end
531do
532 local _tab_0 = { }
533 local _obj_0 = ...
534 local _idx_0 = #_tab_0 + 1
535 for _index_0 = 1, #_obj_0 do
536 local _value_0 = _obj_0[_index_0]
537 _tab_0[_idx_0] = _value_0
538 _idx_0 = _idx_0 + 1
539 end
540 local _obj_1 = {
541 ...
542 }
543 local _idx_1 = #_tab_0 + 1
544 for _index_0 = 1, #_obj_1 do
545 local _value_0 = _obj_1[_index_0]
546 _tab_0[_idx_1] = _value_0
547 _idx_1 = _idx_1 + 1
548 end
549 local _obj_2
550 do
551 local _tab_1 = { }
552 local _obj_3 = ...
553 local _idx_2 = 1
554 for _key_0, _value_0 in pairs(_obj_3) do
555 if _idx_2 == _key_0 then
556 _tab_1[#_tab_1 + 1] = _value_0
557 _idx_2 = _idx_2 + 1
558 else
559 _tab_1[_key_0] = _value_0
560 end
561 end
562 _obj_2 = _tab_1
563 end
564 local _idx_2 = #_tab_0 + 1
565 for _index_0 = 1, #_obj_2 do
566 local _value_0 = _obj_2[_index_0]
567 _tab_0[_idx_2] = _value_0
568 _idx_2 = _idx_2 + 1
569 end
570 _tab_0[#_tab_0 + 1] = 1
571 _tab_0[#_tab_0 + 1] = 2
572 _tab_0[#_tab_0 + 1] = 3
573 tbMixB = _tab_0
574end
492local template <const> = { 575local template <const> = {
493 foo = "Hello", 576 foo = "Hello",
494 bar = "World", 577 bar = "World",
diff --git a/spec/outputs/unicode/cond.lua b/spec/outputs/unicode/cond.lua
index f972dea..9a4ccb9 100644
--- a/spec/outputs/unicode/cond.lua
+++ b/spec/outputs/unicode/cond.lua
@@ -351,4 +351,21 @@ do
351 _u53d8_u91cfv = 2 351 _u53d8_u91cfv = 2
352 end 352 end
353end 353end
354do
355 local _u94fe_u5f0f_u6bd4_u8f83 = 1 < 2 and 2 <= 2 and 2 < 3 and 3 == 3 and 3 > 2 and 2 >= 1 and 1 == 1 and 1 < 3 and 3 ~= 5
356 local _u503c
357 _u503c = function(_u8f93_u5165)
358 _u6253_u5370(_u8f93_u5165)
359 return _u8f93_u5165
360 end
361 local _u6c42_u503c
362 do
363 local _cond_0 = _u503c(2)
364 _u6c42_u503c = _u503c(1) < _cond_0 and _cond_0 <= _u503c(3)
365 end
366 do
367 local _cond_0 = _u503c(2)
368 _u6c42_u503c = _u503c(1) > _cond_0 and _cond_0 <= _u503c(3)
369 end
370end
354return nil 371return nil
diff --git a/spec/outputs/unicode/in_expression.lua b/spec/outputs/unicode/in_expression.lua
index 62aad05..7c584f3 100644
--- a/spec/outputs/unicode/in_expression.lua
+++ b/spec/outputs/unicode/in_expression.lua
@@ -2,43 +2,18 @@ _u51fd_u6570((function()
2 local _val_0 = -_u53d8_u91cfa ^ 2 2 local _val_0 = -_u53d8_u91cfa ^ 2
3 return 1 == _val_0 or 2 == _val_0 or 3 == _val_0 3 return 1 == _val_0 or 2 == _val_0 or 3 == _val_0
4end)()) 4end)())
5local _u53d8_u91cfa, _u53d8_u91cfb = (function(...)
6 local _val_0 = _u51fd_u6570x(...)
7 return not (1 <= _val_0 and _val_0 <= 3)
8end)(...), 2
9local _u53d8_u91cfd
10do
11 local _val_0 = (_u5bf9_u8c61["字段x"]["字段y"](...))
12 _u53d8_u91cfd = not (1 <= _val_0 and _val_0 <= 3)
13end
14local _u5728_u7684 5local _u5728_u7684
15do 6do
16 local _val_0 = "东" 7 local _val_0 = "东"
17 _u5728_u7684 = "东" == _val_0 or "西" == _val_0 8 _u5728_u7684 = "东" == _val_0 or "西" == _val_0
18end 9end
19if (1 == _u53d8_u91cfa) and (2 == _u53d8_u91cfb or 3 == _u53d8_u91cfb or 4 == _u53d8_u91cfb) or (function() 10if (1 == _u53d8_u91cfa) and (function()
20 local _val_0 = _u53d8_u91cfc 11 local _val_0 = _u53d8_u91cfb
21 return 1 <= _val_0 and _val_0 <= 10 12 return 2 == _val_0 or 3 == _val_0 or 4 == _val_0
22end)() then 13end)() then
23 _u6253_u5370(_u53d8_u91cfa, _u53d8_u91cfb, _u53d8_u91cfc) 14 _u6253_u5370(_u53d8_u91cfa, _u53d8_u91cfb, _u53d8_u91cfc)
24end 15end
25do 16do
26 local _exp_0 = _u503c
27 if 1 == _exp_0 or 2 == _exp_0 or 3 == _exp_0 then
28 _u6253_u5370("1, 2, 3")
29 elseif not (0 < _exp_0 and _exp_0 <= 100) then
30 _u6253_u5370("非 (0 < 值 <= 100)")
31 elseif (200 <= _exp_0 and _exp_0 < 300) then
32 _u6253_u5370("200 <= 值 < 300)")
33 elseif not (333 == _exp_0 or 444 == _exp_0 or 555 == _exp_0) then
34 _u6253_u5370("非 333, 444 或 555")
35 end
36end
37do
38 local _val_0 = _u53d8_u91cfy
39 return not (_u5f00_u59cb < _val_0 and _val_0 < _u7ed3_u675f)
40end
41do
42 local _u5b58_u5728 17 local _u5b58_u5728
43 do 18 do
44 local _check_0 = _u8868 19 local _check_0 = _u8868