diff options
Diffstat (limited to 'spec/outputs/codes_from_doc_zh.lua')
-rw-r--r-- | spec/outputs/codes_from_doc_zh.lua | 872 |
1 files changed, 834 insertions, 38 deletions
diff --git a/spec/outputs/codes_from_doc_zh.lua b/spec/outputs/codes_from_doc_zh.lua index 1a10555..b54d6d7 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 | } |
23 | local map | ||
24 | map = 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 | ||
33 | end | ||
34 | local filter | ||
35 | filter = 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 | ||
46 | end | ||
47 | local reduce | ||
48 | reduce = 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 | ||
54 | end | ||
23 | print(reduce(filter(map({ | 55 | print(reduce(filter(map({ |
24 | 1, | 56 | 1, |
25 | 2, | 57 | 2, |
@@ -77,6 +109,12 @@ end | |||
77 | print("yuescript") | 109 | print("yuescript") |
78 | print(3) | 110 | print(3) |
79 | print("有效的枚举类型:", "Static") | 111 | print("有效的枚举类型:", "Static") |
112 | do | ||
113 | print(123, "hello") | ||
114 | end | ||
115 | do | ||
116 | print(123, "hello") | ||
117 | end | ||
80 | if tb ~= nil then | 118 | if tb ~= nil then |
81 | tb:func() | 119 | tb:func() |
82 | end | 120 | end |
@@ -177,6 +215,16 @@ for _key_0, _value_0 in pairs(b) do | |||
177 | end | 215 | end |
178 | end | 216 | end |
179 | merge = _tab_0 | 217 | merge = _tab_0 |
218 | local last | ||
219 | do | ||
220 | local _item_0 = data.items | ||
221 | last = _item_0[#_item_0] | ||
222 | end | ||
223 | local second_last | ||
224 | do | ||
225 | local _item_0 = data.items | ||
226 | second_last = _item_0[#_item_0 - 1] | ||
227 | end | ||
180 | local mt = { } | 228 | local mt = { } |
181 | local add | 229 | local add |
182 | add = function(self, right) | 230 | add = function(self, right) |
@@ -307,6 +355,14 @@ func({ | |||
307 | 2, | 355 | 2, |
308 | 3 | 356 | 3 |
309 | }) | 357 | }) |
358 | local f | ||
359 | f = function() | ||
360 | return { | ||
361 | 1, | ||
362 | 2, | ||
363 | 3 | ||
364 | } | ||
365 | end | ||
310 | local tb = { | 366 | local tb = { |
311 | name = "abc", | 367 | name = "abc", |
312 | values = { | 368 | values = { |
@@ -467,8 +523,7 @@ local x = f() | |||
467 | local y = x | 523 | local y = x |
468 | local z = x | 524 | local z = x |
469 | do | 525 | do |
470 | local a | 526 | local a = 1 |
471 | a = 1 | ||
472 | local x, y, z | 527 | local x, y, z |
473 | print("预先声明后续所有变量为局部变量") | 528 | print("预先声明后续所有变量为局部变量") |
474 | x = function() | 529 | x = function() |
@@ -478,8 +533,7 @@ do | |||
478 | instance = Item:new() | 533 | instance = Item:new() |
479 | end | 534 | end |
480 | do | 535 | do |
481 | local X | 536 | local X = 1 |
482 | X = 1 | ||
483 | local B | 537 | local B |
484 | print("只预先声明后续大写的变量为局部变量") | 538 | print("只预先声明后续大写的变量为局部变量") |
485 | local a = 1 | 539 | local a = 1 |
@@ -488,19 +542,17 @@ end | |||
488 | do | 542 | do |
489 | a = 1 | 543 | a = 1 |
490 | print("预先声明所有变量为全局变量") | 544 | print("预先声明所有变量为全局变量") |
491 | local x | ||
492 | x = function() | 545 | x = function() |
493 | return 1 + y + z | 546 | return 1 + y + z |
494 | end | 547 | end |
495 | local y, z = 2, 3 | 548 | y, z = 2, 3 |
496 | end | 549 | end |
497 | do | 550 | do |
498 | x = 1 | 551 | x = 1 |
499 | print("只预先声明大写的变量为全局变量") | 552 | print("只预先声明大写的变量为全局变量") |
500 | local a = 1 | 553 | local a = 1 |
501 | local B = 2 | 554 | B = 2 |
502 | local Temp | 555 | local Temp = "一个局部值" |
503 | Temp = "一个局部值" | ||
504 | end | 556 | end |
505 | local thing = { | 557 | local thing = { |
506 | 1, | 558 | 1, |
@@ -551,6 +603,59 @@ end | |||
551 | local two, four | 603 | local two, four |
552 | local _obj_0 = items | 604 | local _obj_0 = items |
553 | two, four = _obj_0[2], _obj_0[4] | 605 | two, four = _obj_0[2], _obj_0[4] |
606 | local orders = { | ||
607 | "first", | ||
608 | "second", | ||
609 | "third", | ||
610 | "fourth", | ||
611 | "last" | ||
612 | } | ||
613 | local first, bulk, last = orders[1], (function() | ||
614 | local _accum_0 = { } | ||
615 | local _len_0 = 1 | ||
616 | local _max_0 = #orders + -2 + 1 | ||
617 | for _index_0 = 2, _max_0 do | ||
618 | local _item_0 = orders[_index_0] | ||
619 | _accum_0[_len_0] = _item_0 | ||
620 | _len_0 = _len_0 + 1 | ||
621 | end | ||
622 | return _accum_0 | ||
623 | end)(), orders[#orders] | ||
624 | print(first) | ||
625 | print(bulk) | ||
626 | print(last) | ||
627 | local first, rest | ||
628 | do | ||
629 | local _obj_0 = orders | ||
630 | first, rest = _obj_0[1], (function() | ||
631 | local _accum_0 = { } | ||
632 | local _len_0 = 1 | ||
633 | local _max_0 = #_obj_0 | ||
634 | for _index_0 = 2, _max_0 do | ||
635 | local _item_0 = _obj_0[_index_0] | ||
636 | _accum_0[_len_0] = _item_0 | ||
637 | _len_0 = _len_0 + 1 | ||
638 | end | ||
639 | return _accum_0 | ||
640 | end)() | ||
641 | end | ||
642 | local start, last | ||
643 | do | ||
644 | local _obj_0 = orders | ||
645 | start, last = (function() | ||
646 | local _accum_0 = { } | ||
647 | local _len_0 = 1 | ||
648 | local _max_0 = #_obj_0 + -2 + 1 | ||
649 | for _index_0 = 1, _max_0 do | ||
650 | local _item_0 = _obj_0[_index_0] | ||
651 | _accum_0[_len_0] = _item_0 | ||
652 | _len_0 = _len_0 + 1 | ||
653 | end | ||
654 | return _accum_0 | ||
655 | end)(), _obj_0[#_obj_0] | ||
656 | end | ||
657 | local _obj_0 = orders | ||
658 | first, last = _obj_0[1], _obj_0[#_obj_0] | ||
554 | local tuples = { | 659 | local tuples = { |
555 | { | 660 | { |
556 | "hello", | 661 | "hello", |
@@ -652,6 +757,56 @@ end) | |||
652 | if success then | 757 | if success then |
653 | print(result) | 758 | print(result) |
654 | end | 759 | end |
760 | local a, b, c | ||
761 | do | ||
762 | local _ok_0, _ret_0, _ret_1, _ret_2 = pcall(function() | ||
763 | return func() | ||
764 | end) | ||
765 | if _ok_0 then | ||
766 | a, b, c = _ret_0, _ret_1, _ret_2 | ||
767 | end | ||
768 | end | ||
769 | do | ||
770 | local _exp_0 = ((function() | ||
771 | return (function(_arg_0, ...) | ||
772 | local _ok_0 = _arg_0 | ||
773 | if _ok_0 then | ||
774 | return ... | ||
775 | end | ||
776 | end)(pcall(function() | ||
777 | return func() | ||
778 | end)) | ||
779 | end)()) | ||
780 | if _exp_0 ~= nil then | ||
781 | a = _exp_0 | ||
782 | else | ||
783 | a = "default" | ||
784 | end | ||
785 | end | ||
786 | f((function() | ||
787 | return (function(_arg_0, ...) | ||
788 | local _ok_0 = _arg_0 | ||
789 | if _ok_0 then | ||
790 | return ... | ||
791 | end | ||
792 | end)(pcall(function() | ||
793 | return func() | ||
794 | end)) | ||
795 | end)()) | ||
796 | f((function() | ||
797 | return (function(_arg_0, ...) | ||
798 | local _ok_0 = _arg_0 | ||
799 | if _ok_0 then | ||
800 | return ... | ||
801 | end | ||
802 | end)(xpcall(function() | ||
803 | print(123) | ||
804 | return func() | ||
805 | end, function(e) | ||
806 | print(e) | ||
807 | return e | ||
808 | end)) | ||
809 | end)()) | ||
655 | local a <const> = 123 | 810 | local a <const> = 123 |
656 | local _ <close> = setmetatable({ }, { | 811 | local _ <close> = setmetatable({ }, { |
657 | __close = function() | 812 | __close = function() |
@@ -661,10 +816,19 @@ local _ <close> = setmetatable({ }, { | |||
661 | local a, b, c, d | 816 | local a, b, c, d |
662 | local _obj_0 = tb | 817 | local _obj_0 = tb |
663 | a, b, c, d = _obj_0.a, _obj_0.b, _obj_0[1], _obj_0[2] | 818 | a, b, c, d = _obj_0.a, _obj_0.b, _obj_0[1], _obj_0[2] |
819 | Constant = 123 | ||
664 | local some_string = "这是一个字符串\n 并包括一个换行。" | 820 | local some_string = "这是一个字符串\n 并包括一个换行。" |
665 | print("我有" .. tostring(math.random() * 100) .. "%的把握。") | 821 | print("我有" .. tostring(math.random() * 100) .. "%的把握。") |
666 | local integer = 1000000 | 822 | local integer = 1000000 |
667 | local hex = 0xEFBBBF | 823 | local hex = 0xEFBBBF |
824 | local binary = 19 | ||
825 | local str = "key: value\nlist:\n - item1\n - " .. tostring(expr) | ||
826 | local fn | ||
827 | fn = function() | ||
828 | local str = "foo:\n bar: baz" | ||
829 | return str | ||
830 | end | ||
831 | local str = "path: \"C:\\Program Files\\App\"\nnote: 'He said: \"" .. tostring(Hello) .. "!\"'" | ||
668 | local my_function | 832 | local my_function |
669 | my_function = function() end | 833 | my_function = function() end |
670 | my_function() | 834 | my_function() |
@@ -858,11 +1022,10 @@ for i, item in ipairs(items) do | |||
858 | _len_0 = _len_0 + 1 | 1022 | _len_0 = _len_0 + 1 |
859 | end | 1023 | end |
860 | doubled = _accum_0 | 1024 | doubled = _accum_0 |
861 | local iter = ipairs(items) | ||
862 | local slice | 1025 | local slice |
863 | local _accum_0 = { } | 1026 | local _accum_0 = { } |
864 | local _len_0 = 1 | 1027 | local _len_0 = 1 |
865 | for i, item in iter do | 1028 | for i, item in ipairs(items) do |
866 | if i > 1 and i < 3 then | 1029 | if i > 1 and i < 3 then |
867 | _accum_0[_len_0] = item | 1030 | _accum_0[_len_0] = item |
868 | _len_0 = _len_0 + 1 | 1031 | _len_0 = _len_0 + 1 |
@@ -969,8 +1132,18 @@ local slice | |||
969 | local _accum_0 = { } | 1132 | local _accum_0 = { } |
970 | local _len_0 = 1 | 1133 | local _len_0 = 1 |
971 | local _list_0 = items | 1134 | local _list_0 = items |
972 | local _max_0 = 5 | 1135 | for _index_0 = 1, 5 do |
973 | for _index_0 = 1, _max_0 < 0 and #_list_0 + _max_0 or _max_0 do | 1136 | local item = _list_0[_index_0] |
1137 | _accum_0[_len_0] = item | ||
1138 | _len_0 = _len_0 + 1 | ||
1139 | end | ||
1140 | slice = _accum_0 | ||
1141 | local slice | ||
1142 | local _accum_0 = { } | ||
1143 | local _len_0 = 1 | ||
1144 | local _list_0 = items | ||
1145 | local _max_0 = #_list_0 | ||
1146 | for _index_0 = 2, _max_0 do | ||
974 | local item = _list_0[_index_0] | 1147 | local item = _list_0[_index_0] |
975 | _accum_0[_len_0] = item | 1148 | _accum_0[_len_0] = item |
976 | _len_0 = _len_0 + 1 | 1149 | _len_0 = _len_0 + 1 |
@@ -980,7 +1153,8 @@ local slice | |||
980 | local _accum_0 = { } | 1153 | local _accum_0 = { } |
981 | local _len_0 = 1 | 1154 | local _len_0 = 1 |
982 | local _list_0 = items | 1155 | local _list_0 = items |
983 | for _index_0 = 2, #_list_0 do | 1156 | local _max_0 = #_list_0 |
1157 | for _index_0 = 1, _max_0, 2 do | ||
984 | local item = _list_0[_index_0] | 1158 | local item = _list_0[_index_0] |
985 | _accum_0[_len_0] = item | 1159 | _accum_0[_len_0] = item |
986 | _len_0 = _len_0 + 1 | 1160 | _len_0 = _len_0 + 1 |
@@ -990,12 +1164,35 @@ local slice | |||
990 | local _accum_0 = { } | 1164 | local _accum_0 = { } |
991 | local _len_0 = 1 | 1165 | local _len_0 = 1 |
992 | local _list_0 = items | 1166 | local _list_0 = items |
993 | for _index_0 = 1, #_list_0, 2 do | 1167 | local _min_0 = #_list_0 + -4 + 1 |
1168 | local _max_0 = #_list_0 + -1 + 1 | ||
1169 | for _index_0 = _min_0, _max_0 do | ||
994 | local item = _list_0[_index_0] | 1170 | local item = _list_0[_index_0] |
995 | _accum_0[_len_0] = item | 1171 | _accum_0[_len_0] = item |
996 | _len_0 = _len_0 + 1 | 1172 | _len_0 = _len_0 + 1 |
997 | end | 1173 | end |
998 | slice = _accum_0 | 1174 | slice = _accum_0 |
1175 | local reverse_slice | ||
1176 | local _accum_0 = { } | ||
1177 | local _len_0 = 1 | ||
1178 | local _list_0 = items | ||
1179 | local _min_0 = #_list_0 + -1 + 1 | ||
1180 | for _index_0 = _min_0, 1, -1 do | ||
1181 | local item = _list_0[_index_0] | ||
1182 | _accum_0[_len_0] = item | ||
1183 | _len_0 = _len_0 + 1 | ||
1184 | end | ||
1185 | reverse_slice = _accum_0 | ||
1186 | local sub_list | ||
1187 | local _accum_0 = { } | ||
1188 | local _len_0 = 1 | ||
1189 | local _list_0 = items | ||
1190 | for _index_0 = 2, 4 do | ||
1191 | local _item_0 = _list_0[_index_0] | ||
1192 | _accum_0[_len_0] = _item_0 | ||
1193 | _len_0 = _len_0 + 1 | ||
1194 | end | ||
1195 | sub_list = _accum_0 | ||
999 | for i = 10, 20 do | 1196 | for i = 10, 20 do |
1000 | print(i) | 1197 | print(i) |
1001 | end | 1198 | end |
@@ -1006,8 +1203,7 @@ for key, value in pairs(object) do | |||
1006 | print(key, value) | 1203 | print(key, value) |
1007 | end | 1204 | end |
1008 | local _list_0 = items | 1205 | local _list_0 = items |
1009 | local _max_0 = 4 | 1206 | for _index_0 = 2, 4 do |
1010 | for _index_0 = 2, _max_0 < 0 and #_list_0 + _max_0 or _max_0 do | ||
1011 | local item = _list_0[_index_0] | 1207 | local item = _list_0[_index_0] |
1012 | print(item) | 1208 | print(item) |
1013 | end | 1209 | end |
@@ -1025,12 +1221,24 @@ local _len_0 = 1 | |||
1025 | for i = 1, 20 do | 1221 | for i = 1, 20 do |
1026 | if i % 2 == 0 then | 1222 | if i % 2 == 0 then |
1027 | _accum_0[_len_0] = i * 2 | 1223 | _accum_0[_len_0] = i * 2 |
1224 | _len_0 = _len_0 + 1 | ||
1028 | else | 1225 | else |
1029 | _accum_0[_len_0] = i | 1226 | _accum_0[_len_0] = i |
1227 | _len_0 = _len_0 + 1 | ||
1030 | end | 1228 | end |
1031 | _len_0 = _len_0 + 1 | ||
1032 | end | 1229 | end |
1033 | doubled_evens = _accum_0 | 1230 | doubled_evens = _accum_0 |
1231 | local first_large | ||
1232 | local _accum_0 | ||
1233 | local _list_0 = numbers | ||
1234 | for _index_0 = 1, #_list_0 do | ||
1235 | local n = _list_0[_index_0] | ||
1236 | if n > 10 then | ||
1237 | _accum_0 = n | ||
1238 | break | ||
1239 | end | ||
1240 | end | ||
1241 | first_large = _accum_0 | ||
1034 | local func_a | 1242 | local func_a |
1035 | func_a = function() | 1243 | func_a = function() |
1036 | for i = 1, 10 do | 1244 | for i = 1, 10 do |
@@ -1179,7 +1387,7 @@ if "Robert" == name then | |||
1179 | elseif "Dan" == name or "Daniel" == name then | 1387 | elseif "Dan" == name or "Daniel" == name then |
1180 | print("你的名字是Dan") | 1388 | print("你的名字是Dan") |
1181 | else | 1389 | else |
1182 | print("我不知道你的名字") | 1390 | print("我不认识你,你的名字是" .. tostring(name)) |
1183 | end | 1391 | end |
1184 | local b = 1 | 1392 | local b = 1 |
1185 | local next_number | 1393 | local next_number |
@@ -1279,6 +1487,192 @@ if _tab_0 then | |||
1279 | end | 1487 | end |
1280 | print("Vec2 " .. tostring(x) .. ", " .. tostring(y)) | 1488 | print("Vec2 " .. tostring(x) .. ", " .. tostring(y)) |
1281 | end | 1489 | end |
1490 | local _exp_0 = tb | ||
1491 | local _type_0 = type(_exp_0) | ||
1492 | local _tab_0 = "table" == _type_0 or "userdata" == _type_0 | ||
1493 | local _match_0 = false | ||
1494 | if _tab_0 then | ||
1495 | if 1 == _exp_0[1] and 2 == _exp_0[2] and 3 == _exp_0[3] then | ||
1496 | _match_0 = true | ||
1497 | print("1, 2, 3") | ||
1498 | end | ||
1499 | end | ||
1500 | if not _match_0 then | ||
1501 | local _match_1 = false | ||
1502 | if _tab_0 then | ||
1503 | local b = _exp_0[2] | ||
1504 | if 1 == _exp_0[1] and b ~= nil and 3 == _exp_0[3] then | ||
1505 | _match_1 = true | ||
1506 | print("1, " .. tostring(b) .. ", 3") | ||
1507 | end | ||
1508 | end | ||
1509 | if not _match_1 then | ||
1510 | if _tab_0 then | ||
1511 | local b = _exp_0[3] | ||
1512 | if b == nil then | ||
1513 | b = 3 | ||
1514 | end | ||
1515 | if 1 == _exp_0[1] and 2 == _exp_0[2] then | ||
1516 | print("1, 2, " .. tostring(b)) | ||
1517 | end | ||
1518 | end | ||
1519 | end | ||
1520 | end | ||
1521 | local _exp_0 = tb | ||
1522 | local _type_0 = type(_exp_0) | ||
1523 | local _tab_0 = "table" == _type_0 or "userdata" == _type_0 | ||
1524 | local _match_0 = false | ||
1525 | if _tab_0 then | ||
1526 | local result = _exp_0.result | ||
1527 | if true == _exp_0.success and result ~= nil then | ||
1528 | _match_0 = true | ||
1529 | print("成功", result) | ||
1530 | end | ||
1531 | end | ||
1532 | if not _match_0 then | ||
1533 | local _match_1 = false | ||
1534 | if _tab_0 then | ||
1535 | if false == _exp_0.success then | ||
1536 | _match_1 = true | ||
1537 | print("失败", result) | ||
1538 | end | ||
1539 | end | ||
1540 | if not _match_1 then | ||
1541 | print("无效值") | ||
1542 | end | ||
1543 | end | ||
1544 | local _exp_0 = tb | ||
1545 | local _type_0 = type(_exp_0) | ||
1546 | local _tab_0 = "table" == _type_0 or "userdata" == _type_0 | ||
1547 | local _match_0 = false | ||
1548 | if _tab_0 then | ||
1549 | local content | ||
1550 | do | ||
1551 | local _obj_0 = _exp_0.data | ||
1552 | local _type_1 = type(_obj_0) | ||
1553 | if "table" == _type_1 or "userdata" == _type_1 then | ||
1554 | content = _obj_0.content | ||
1555 | end | ||
1556 | end | ||
1557 | local _val_0 | ||
1558 | do | ||
1559 | local _obj_0 = _exp_0.data | ||
1560 | if _obj_0 ~= nil then | ||
1561 | _val_0 = _obj_0.type | ||
1562 | end | ||
1563 | end | ||
1564 | if "success" == _val_0 and content ~= nil then | ||
1565 | _match_0 = true | ||
1566 | print("成功", content) | ||
1567 | end | ||
1568 | end | ||
1569 | if not _match_0 then | ||
1570 | local _match_1 = false | ||
1571 | if _tab_0 then | ||
1572 | local content | ||
1573 | do | ||
1574 | local _obj_0 = _exp_0.data | ||
1575 | local _type_1 = type(_obj_0) | ||
1576 | if "table" == _type_1 or "userdata" == _type_1 then | ||
1577 | content = _obj_0.content | ||
1578 | end | ||
1579 | end | ||
1580 | local _val_0 | ||
1581 | do | ||
1582 | local _obj_0 = _exp_0.data | ||
1583 | if _obj_0 ~= nil then | ||
1584 | _val_0 = _obj_0.type | ||
1585 | end | ||
1586 | end | ||
1587 | if "error" == _val_0 and content ~= nil then | ||
1588 | _match_1 = true | ||
1589 | print("失败", content) | ||
1590 | end | ||
1591 | end | ||
1592 | if not _match_1 then | ||
1593 | print("无效值") | ||
1594 | end | ||
1595 | end | ||
1596 | local _exp_0 = tb | ||
1597 | local _type_0 = type(_exp_0) | ||
1598 | local _tab_0 = "table" == _type_0 or "userdata" == _type_0 | ||
1599 | if _tab_0 then | ||
1600 | local fourth = _exp_0[4] | ||
1601 | local _val_0 | ||
1602 | do | ||
1603 | local _obj_0 = _exp_0[1] | ||
1604 | if _obj_0 ~= nil then | ||
1605 | _val_0 = _obj_0.a | ||
1606 | end | ||
1607 | end | ||
1608 | local _val_1 | ||
1609 | do | ||
1610 | local _obj_0 = _exp_0[1] | ||
1611 | if _obj_0 ~= nil then | ||
1612 | _val_1 = _obj_0.b | ||
1613 | end | ||
1614 | end | ||
1615 | local _val_2 | ||
1616 | do | ||
1617 | local _obj_0 = _exp_0[2] | ||
1618 | if _obj_0 ~= nil then | ||
1619 | _val_2 = _obj_0.a | ||
1620 | end | ||
1621 | end | ||
1622 | local _val_3 | ||
1623 | do | ||
1624 | local _obj_0 = _exp_0[2] | ||
1625 | if _obj_0 ~= nil then | ||
1626 | _val_3 = _obj_0.b | ||
1627 | end | ||
1628 | end | ||
1629 | local _val_4 | ||
1630 | do | ||
1631 | local _obj_0 = _exp_0[3] | ||
1632 | if _obj_0 ~= nil then | ||
1633 | _val_4 = _obj_0.a | ||
1634 | end | ||
1635 | end | ||
1636 | local _val_5 | ||
1637 | do | ||
1638 | local _obj_0 = _exp_0[3] | ||
1639 | if _obj_0 ~= nil then | ||
1640 | _val_5 = _obj_0.b | ||
1641 | end | ||
1642 | end | ||
1643 | if 1 == _val_0 and 2 == _val_1 and 3 == _val_2 and 4 == _val_3 and 5 == _val_4 and 6 == _val_5 and fourth ~= nil then | ||
1644 | print("匹配成功", fourth) | ||
1645 | end | ||
1646 | end | ||
1647 | local segments = { | ||
1648 | "admin", | ||
1649 | "users", | ||
1650 | "logs", | ||
1651 | "view" | ||
1652 | } | ||
1653 | local _type_0 = type(segments) | ||
1654 | local _tab_0 = "table" == _type_0 or "userdata" == _type_0 | ||
1655 | if _tab_0 then | ||
1656 | local groups | ||
1657 | do | ||
1658 | local _accum_0 = { } | ||
1659 | local _len_0 = 1 | ||
1660 | local _max_0 = #segments + -3 + 1 | ||
1661 | for _index_0 = 1, _max_0 do | ||
1662 | local _item_0 = segments[_index_0] | ||
1663 | _accum_0[_len_0] = _item_0 | ||
1664 | _len_0 = _len_0 + 1 | ||
1665 | end | ||
1666 | groups = _accum_0 | ||
1667 | end | ||
1668 | local resource = segments[#segments - 1] | ||
1669 | local action = segments[#segments] | ||
1670 | if resource ~= nil and action ~= nil then | ||
1671 | print("Group:", groups) | ||
1672 | print("Resource:", resource) | ||
1673 | print("Action:", action) | ||
1674 | end | ||
1675 | end | ||
1282 | local Inventory | 1676 | local Inventory |
1283 | local _class_0 | 1677 | local _class_0 |
1284 | local _base_0 = { | 1678 | local _base_0 = { |
@@ -1935,6 +2329,10 @@ do | |||
1935 | _with_1["key-name"] = value | 2329 | _with_1["key-name"] = value |
1936 | end | 2330 | end |
1937 | _with_0[#_with_0 + 1] = "abc" | 2331 | _with_0[#_with_0 + 1] = "abc" |
2332 | local _with_0 = obj | ||
2333 | if _with_0 ~= nil then | ||
2334 | print(obj.name) | ||
2335 | end | ||
1938 | do | 2336 | do |
1939 | local var = "hello" | 2337 | local var = "hello" |
1940 | print(var) | 2338 | print(var) |
@@ -2025,6 +2423,38 @@ local inventory = { | |||
2025 | } | 2423 | } |
2026 | } | 2424 | } |
2027 | } | 2425 | } |
2426 | local map | ||
2427 | map = function(arr, action) | ||
2428 | local _accum_0 = { } | ||
2429 | local _len_0 = 1 | ||
2430 | for _index_0 = 1, #arr do | ||
2431 | local item = arr[_index_0] | ||
2432 | _accum_0[_len_0] = action(item) | ||
2433 | _len_0 = _len_0 + 1 | ||
2434 | end | ||
2435 | return _accum_0 | ||
2436 | end | ||
2437 | local filter | ||
2438 | filter = function(arr, cond) | ||
2439 | local _accum_0 = { } | ||
2440 | local _len_0 = 1 | ||
2441 | for _index_0 = 1, #arr do | ||
2442 | local item = arr[_index_0] | ||
2443 | if cond(item) then | ||
2444 | _accum_0[_len_0] = item | ||
2445 | _len_0 = _len_0 + 1 | ||
2446 | end | ||
2447 | end | ||
2448 | return _accum_0 | ||
2449 | end | ||
2450 | local reduce | ||
2451 | reduce = function(arr, init, action) | ||
2452 | for _index_0 = 1, #arr do | ||
2453 | local item = arr[_index_0] | ||
2454 | init = action(init, item) | ||
2455 | end | ||
2456 | return init | ||
2457 | end | ||
2028 | print(reduce(filter(map({ | 2458 | print(reduce(filter(map({ |
2029 | 1, | 2459 | 1, |
2030 | 2, | 2460 | 2, |
@@ -2082,6 +2512,12 @@ end | |||
2082 | print("yuescript") | 2512 | print("yuescript") |
2083 | print(3) | 2513 | print(3) |
2084 | print("有效的枚举类型:", "Static") | 2514 | print("有效的枚举类型:", "Static") |
2515 | do | ||
2516 | print(123, "hello") | ||
2517 | end | ||
2518 | do | ||
2519 | print(123, "hello") | ||
2520 | end | ||
2085 | if tb ~= nil then | 2521 | if tb ~= nil then |
2086 | tb:func() | 2522 | tb:func() |
2087 | end | 2523 | end |
@@ -2182,6 +2618,16 @@ for _key_0, _value_0 in pairs(b) do | |||
2182 | end | 2618 | end |
2183 | end | 2619 | end |
2184 | merge = _tab_0 | 2620 | merge = _tab_0 |
2621 | local last | ||
2622 | do | ||
2623 | local _item_0 = data.items | ||
2624 | last = _item_0[#_item_0] | ||
2625 | end | ||
2626 | local second_last | ||
2627 | do | ||
2628 | local _item_0 = data.items | ||
2629 | second_last = _item_0[#_item_0 - 1] | ||
2630 | end | ||
2185 | local mt = { } | 2631 | local mt = { } |
2186 | local add | 2632 | local add |
2187 | add = function(self, right) | 2633 | add = function(self, right) |
@@ -2312,6 +2758,14 @@ func({ | |||
2312 | 2, | 2758 | 2, |
2313 | 3 | 2759 | 3 |
2314 | }) | 2760 | }) |
2761 | local f | ||
2762 | f = function() | ||
2763 | return { | ||
2764 | 1, | ||
2765 | 2, | ||
2766 | 3 | ||
2767 | } | ||
2768 | end | ||
2315 | local tb = { | 2769 | local tb = { |
2316 | name = "abc", | 2770 | name = "abc", |
2317 | values = { | 2771 | values = { |
@@ -2472,8 +2926,7 @@ local x = f() | |||
2472 | local y = x | 2926 | local y = x |
2473 | local z = x | 2927 | local z = x |
2474 | do | 2928 | do |
2475 | local a | 2929 | local a = 1 |
2476 | a = 1 | ||
2477 | local x, y, z | 2930 | local x, y, z |
2478 | print("预先声明后续所有变量为局部变量") | 2931 | print("预先声明后续所有变量为局部变量") |
2479 | x = function() | 2932 | x = function() |
@@ -2483,8 +2936,7 @@ do | |||
2483 | instance = Item:new() | 2936 | instance = Item:new() |
2484 | end | 2937 | end |
2485 | do | 2938 | do |
2486 | local X | 2939 | local X = 1 |
2487 | X = 1 | ||
2488 | local B | 2940 | local B |
2489 | print("只预先声明后续大写的变量为局部变量") | 2941 | print("只预先声明后续大写的变量为局部变量") |
2490 | local a = 1 | 2942 | local a = 1 |
@@ -2493,19 +2945,17 @@ end | |||
2493 | do | 2945 | do |
2494 | a = 1 | 2946 | a = 1 |
2495 | print("预先声明所有变量为全局变量") | 2947 | print("预先声明所有变量为全局变量") |
2496 | local x | ||
2497 | x = function() | 2948 | x = function() |
2498 | return 1 + y + z | 2949 | return 1 + y + z |
2499 | end | 2950 | end |
2500 | local y, z = 2, 3 | 2951 | y, z = 2, 3 |
2501 | end | 2952 | end |
2502 | do | 2953 | do |
2503 | x = 1 | 2954 | x = 1 |
2504 | print("只预先声明大写的变量为全局变量") | 2955 | print("只预先声明大写的变量为全局变量") |
2505 | local a = 1 | 2956 | local a = 1 |
2506 | local B = 2 | 2957 | B = 2 |
2507 | local Temp | 2958 | local Temp = "一个局部值" |
2508 | Temp = "一个局部值" | ||
2509 | end | 2959 | end |
2510 | local thing = { | 2960 | local thing = { |
2511 | 1, | 2961 | 1, |
@@ -2556,6 +3006,59 @@ end | |||
2556 | local two, four | 3006 | local two, four |
2557 | local _obj_0 = items | 3007 | local _obj_0 = items |
2558 | two, four = _obj_0[2], _obj_0[4] | 3008 | two, four = _obj_0[2], _obj_0[4] |
3009 | local orders = { | ||
3010 | "first", | ||
3011 | "second", | ||
3012 | "third", | ||
3013 | "fourth", | ||
3014 | "last" | ||
3015 | } | ||
3016 | local first, bulk, last = orders[1], (function() | ||
3017 | local _accum_0 = { } | ||
3018 | local _len_0 = 1 | ||
3019 | local _max_0 = #orders + -2 + 1 | ||
3020 | for _index_0 = 2, _max_0 do | ||
3021 | local _item_0 = orders[_index_0] | ||
3022 | _accum_0[_len_0] = _item_0 | ||
3023 | _len_0 = _len_0 + 1 | ||
3024 | end | ||
3025 | return _accum_0 | ||
3026 | end)(), orders[#orders] | ||
3027 | print(first) | ||
3028 | print(bulk) | ||
3029 | print(last) | ||
3030 | local first, rest | ||
3031 | do | ||
3032 | local _obj_0 = orders | ||
3033 | first, rest = _obj_0[1], (function() | ||
3034 | local _accum_0 = { } | ||
3035 | local _len_0 = 1 | ||
3036 | local _max_0 = #_obj_0 | ||
3037 | for _index_0 = 2, _max_0 do | ||
3038 | local _item_0 = _obj_0[_index_0] | ||
3039 | _accum_0[_len_0] = _item_0 | ||
3040 | _len_0 = _len_0 + 1 | ||
3041 | end | ||
3042 | return _accum_0 | ||
3043 | end)() | ||
3044 | end | ||
3045 | local start, last | ||
3046 | do | ||
3047 | local _obj_0 = orders | ||
3048 | start, last = (function() | ||
3049 | local _accum_0 = { } | ||
3050 | local _len_0 = 1 | ||
3051 | local _max_0 = #_obj_0 + -2 + 1 | ||
3052 | for _index_0 = 1, _max_0 do | ||
3053 | local _item_0 = _obj_0[_index_0] | ||
3054 | _accum_0[_len_0] = _item_0 | ||
3055 | _len_0 = _len_0 + 1 | ||
3056 | end | ||
3057 | return _accum_0 | ||
3058 | end)(), _obj_0[#_obj_0] | ||
3059 | end | ||
3060 | local _obj_0 = orders | ||
3061 | first, last = _obj_0[1], _obj_0[#_obj_0] | ||
2559 | local tuples = { | 3062 | local tuples = { |
2560 | { | 3063 | { |
2561 | "hello", | 3064 | "hello", |
@@ -2657,6 +3160,56 @@ end) | |||
2657 | if success then | 3160 | if success then |
2658 | print(result) | 3161 | print(result) |
2659 | end | 3162 | end |
3163 | local a, b, c | ||
3164 | do | ||
3165 | local _ok_0, _ret_0, _ret_1, _ret_2 = pcall(function() | ||
3166 | return func() | ||
3167 | end) | ||
3168 | if _ok_0 then | ||
3169 | a, b, c = _ret_0, _ret_1, _ret_2 | ||
3170 | end | ||
3171 | end | ||
3172 | do | ||
3173 | local _exp_0 = ((function() | ||
3174 | return (function(_arg_0, ...) | ||
3175 | local _ok_0 = _arg_0 | ||
3176 | if _ok_0 then | ||
3177 | return ... | ||
3178 | end | ||
3179 | end)(pcall(function() | ||
3180 | return func() | ||
3181 | end)) | ||
3182 | end)()) | ||
3183 | if _exp_0 ~= nil then | ||
3184 | a = _exp_0 | ||
3185 | else | ||
3186 | a = "default" | ||
3187 | end | ||
3188 | end | ||
3189 | f((function() | ||
3190 | return (function(_arg_0, ...) | ||
3191 | local _ok_0 = _arg_0 | ||
3192 | if _ok_0 then | ||
3193 | return ... | ||
3194 | end | ||
3195 | end)(pcall(function() | ||
3196 | return func() | ||
3197 | end)) | ||
3198 | end)()) | ||
3199 | f((function() | ||
3200 | return (function(_arg_0, ...) | ||
3201 | local _ok_0 = _arg_0 | ||
3202 | if _ok_0 then | ||
3203 | return ... | ||
3204 | end | ||
3205 | end)(xpcall(function() | ||
3206 | print(123) | ||
3207 | return func() | ||
3208 | end, function(e) | ||
3209 | print(e) | ||
3210 | return e | ||
3211 | end)) | ||
3212 | end)()) | ||
2660 | local a <const> = 123 | 3213 | local a <const> = 123 |
2661 | local _ <close> = setmetatable({ }, { | 3214 | local _ <close> = setmetatable({ }, { |
2662 | __close = function() | 3215 | __close = function() |
@@ -2666,10 +3219,19 @@ local _ <close> = setmetatable({ }, { | |||
2666 | local a, b, c, d | 3219 | local a, b, c, d |
2667 | local _obj_0 = tb | 3220 | local _obj_0 = tb |
2668 | a, b, c, d = _obj_0.a, _obj_0.b, _obj_0[1], _obj_0[2] | 3221 | a, b, c, d = _obj_0.a, _obj_0.b, _obj_0[1], _obj_0[2] |
3222 | Constant = 123 | ||
2669 | local some_string = "这是一个字符串\n 并包括一个换行。" | 3223 | local some_string = "这是一个字符串\n 并包括一个换行。" |
2670 | print("我有" .. tostring(math.random() * 100) .. "%的把握。") | 3224 | print("我有" .. tostring(math.random() * 100) .. "%的把握。") |
2671 | local integer = 1000000 | 3225 | local integer = 1000000 |
2672 | local hex = 0xEFBBBF | 3226 | local hex = 0xEFBBBF |
3227 | local binary = 19 | ||
3228 | local str = "key: value\nlist:\n - item1\n - " .. tostring(expr) | ||
3229 | local fn | ||
3230 | fn = function() | ||
3231 | local str = "foo:\n bar: baz" | ||
3232 | return str | ||
3233 | end | ||
3234 | local str = "path: \"C:\\Program Files\\App\"\nnote: 'He said: \"" .. tostring(Hello) .. "!\"'" | ||
2673 | local my_function | 3235 | local my_function |
2674 | my_function = function() end | 3236 | my_function = function() end |
2675 | my_function() | 3237 | my_function() |
@@ -2863,11 +3425,10 @@ for i, item in ipairs(items) do | |||
2863 | _len_0 = _len_0 + 1 | 3425 | _len_0 = _len_0 + 1 |
2864 | end | 3426 | end |
2865 | doubled = _accum_0 | 3427 | doubled = _accum_0 |
2866 | local iter = ipairs(items) | ||
2867 | local slice | 3428 | local slice |
2868 | local _accum_0 = { } | 3429 | local _accum_0 = { } |
2869 | local _len_0 = 1 | 3430 | local _len_0 = 1 |
2870 | for i, item in iter do | 3431 | for i, item in ipairs(items) do |
2871 | if i > 1 and i < 3 then | 3432 | if i > 1 and i < 3 then |
2872 | _accum_0[_len_0] = item | 3433 | _accum_0[_len_0] = item |
2873 | _len_0 = _len_0 + 1 | 3434 | _len_0 = _len_0 + 1 |
@@ -2974,8 +3535,18 @@ local slice | |||
2974 | local _accum_0 = { } | 3535 | local _accum_0 = { } |
2975 | local _len_0 = 1 | 3536 | local _len_0 = 1 |
2976 | local _list_0 = items | 3537 | local _list_0 = items |
2977 | local _max_0 = 5 | 3538 | for _index_0 = 1, 5 do |
2978 | for _index_0 = 1, _max_0 < 0 and #_list_0 + _max_0 or _max_0 do | 3539 | local item = _list_0[_index_0] |
3540 | _accum_0[_len_0] = item | ||
3541 | _len_0 = _len_0 + 1 | ||
3542 | end | ||
3543 | slice = _accum_0 | ||
3544 | local slice | ||
3545 | local _accum_0 = { } | ||
3546 | local _len_0 = 1 | ||
3547 | local _list_0 = items | ||
3548 | local _max_0 = #_list_0 | ||
3549 | for _index_0 = 2, _max_0 do | ||
2979 | local item = _list_0[_index_0] | 3550 | local item = _list_0[_index_0] |
2980 | _accum_0[_len_0] = item | 3551 | _accum_0[_len_0] = item |
2981 | _len_0 = _len_0 + 1 | 3552 | _len_0 = _len_0 + 1 |
@@ -2985,7 +3556,8 @@ local slice | |||
2985 | local _accum_0 = { } | 3556 | local _accum_0 = { } |
2986 | local _len_0 = 1 | 3557 | local _len_0 = 1 |
2987 | local _list_0 = items | 3558 | local _list_0 = items |
2988 | for _index_0 = 2, #_list_0 do | 3559 | local _max_0 = #_list_0 |
3560 | for _index_0 = 1, _max_0, 2 do | ||
2989 | local item = _list_0[_index_0] | 3561 | local item = _list_0[_index_0] |
2990 | _accum_0[_len_0] = item | 3562 | _accum_0[_len_0] = item |
2991 | _len_0 = _len_0 + 1 | 3563 | _len_0 = _len_0 + 1 |
@@ -2995,12 +3567,35 @@ local slice | |||
2995 | local _accum_0 = { } | 3567 | local _accum_0 = { } |
2996 | local _len_0 = 1 | 3568 | local _len_0 = 1 |
2997 | local _list_0 = items | 3569 | local _list_0 = items |
2998 | for _index_0 = 1, #_list_0, 2 do | 3570 | local _min_0 = #_list_0 + -4 + 1 |
3571 | local _max_0 = #_list_0 + -1 + 1 | ||
3572 | for _index_0 = _min_0, _max_0 do | ||
2999 | local item = _list_0[_index_0] | 3573 | local item = _list_0[_index_0] |
3000 | _accum_0[_len_0] = item | 3574 | _accum_0[_len_0] = item |
3001 | _len_0 = _len_0 + 1 | 3575 | _len_0 = _len_0 + 1 |
3002 | end | 3576 | end |
3003 | slice = _accum_0 | 3577 | slice = _accum_0 |
3578 | local reverse_slice | ||
3579 | local _accum_0 = { } | ||
3580 | local _len_0 = 1 | ||
3581 | local _list_0 = items | ||
3582 | local _min_0 = #_list_0 + -1 + 1 | ||
3583 | for _index_0 = _min_0, 1, -1 do | ||
3584 | local item = _list_0[_index_0] | ||
3585 | _accum_0[_len_0] = item | ||
3586 | _len_0 = _len_0 + 1 | ||
3587 | end | ||
3588 | reverse_slice = _accum_0 | ||
3589 | local sub_list | ||
3590 | local _accum_0 = { } | ||
3591 | local _len_0 = 1 | ||
3592 | local _list_0 = items | ||
3593 | for _index_0 = 2, 4 do | ||
3594 | local _item_0 = _list_0[_index_0] | ||
3595 | _accum_0[_len_0] = _item_0 | ||
3596 | _len_0 = _len_0 + 1 | ||
3597 | end | ||
3598 | sub_list = _accum_0 | ||
3004 | for i = 10, 20 do | 3599 | for i = 10, 20 do |
3005 | print(i) | 3600 | print(i) |
3006 | end | 3601 | end |
@@ -3011,8 +3606,7 @@ for key, value in pairs(object) do | |||
3011 | print(key, value) | 3606 | print(key, value) |
3012 | end | 3607 | end |
3013 | local _list_0 = items | 3608 | local _list_0 = items |
3014 | local _max_0 = 4 | 3609 | for _index_0 = 2, 4 do |
3015 | for _index_0 = 2, _max_0 < 0 and #_list_0 + _max_0 or _max_0 do | ||
3016 | local item = _list_0[_index_0] | 3610 | local item = _list_0[_index_0] |
3017 | print(item) | 3611 | print(item) |
3018 | end | 3612 | end |
@@ -3030,12 +3624,24 @@ local _len_0 = 1 | |||
3030 | for i = 1, 20 do | 3624 | for i = 1, 20 do |
3031 | if i % 2 == 0 then | 3625 | if i % 2 == 0 then |
3032 | _accum_0[_len_0] = i * 2 | 3626 | _accum_0[_len_0] = i * 2 |
3627 | _len_0 = _len_0 + 1 | ||
3033 | else | 3628 | else |
3034 | _accum_0[_len_0] = i | 3629 | _accum_0[_len_0] = i |
3630 | _len_0 = _len_0 + 1 | ||
3035 | end | 3631 | end |
3036 | _len_0 = _len_0 + 1 | ||
3037 | end | 3632 | end |
3038 | doubled_evens = _accum_0 | 3633 | doubled_evens = _accum_0 |
3634 | local first_large | ||
3635 | local _accum_0 | ||
3636 | local _list_0 = numbers | ||
3637 | for _index_0 = 1, #_list_0 do | ||
3638 | local n = _list_0[_index_0] | ||
3639 | if n > 10 then | ||
3640 | _accum_0 = n | ||
3641 | break | ||
3642 | end | ||
3643 | end | ||
3644 | first_large = _accum_0 | ||
3039 | local func_a | 3645 | local func_a |
3040 | func_a = function() | 3646 | func_a = function() |
3041 | for i = 1, 10 do | 3647 | for i = 1, 10 do |
@@ -3184,7 +3790,7 @@ if "Robert" == name then | |||
3184 | elseif "Dan" == name or "Daniel" == name then | 3790 | elseif "Dan" == name or "Daniel" == name then |
3185 | print("你的名字是Dan") | 3791 | print("你的名字是Dan") |
3186 | else | 3792 | else |
3187 | print("我不知道你的名字") | 3793 | print("我不认识你,你的名字是" .. tostring(name)) |
3188 | end | 3794 | end |
3189 | local b = 1 | 3795 | local b = 1 |
3190 | local next_number | 3796 | local next_number |
@@ -3284,6 +3890,192 @@ if _tab_0 then | |||
3284 | end | 3890 | end |
3285 | print("Vec2 " .. tostring(x) .. ", " .. tostring(y)) | 3891 | print("Vec2 " .. tostring(x) .. ", " .. tostring(y)) |
3286 | end | 3892 | end |
3893 | local _exp_0 = tb | ||
3894 | local _type_0 = type(_exp_0) | ||
3895 | local _tab_0 = "table" == _type_0 or "userdata" == _type_0 | ||
3896 | local _match_0 = false | ||
3897 | if _tab_0 then | ||
3898 | if 1 == _exp_0[1] and 2 == _exp_0[2] and 3 == _exp_0[3] then | ||
3899 | _match_0 = true | ||
3900 | print("1, 2, 3") | ||
3901 | end | ||
3902 | end | ||
3903 | if not _match_0 then | ||
3904 | local _match_1 = false | ||
3905 | if _tab_0 then | ||
3906 | local b = _exp_0[2] | ||
3907 | if 1 == _exp_0[1] and b ~= nil and 3 == _exp_0[3] then | ||
3908 | _match_1 = true | ||
3909 | print("1, " .. tostring(b) .. ", 3") | ||
3910 | end | ||
3911 | end | ||
3912 | if not _match_1 then | ||
3913 | if _tab_0 then | ||
3914 | local b = _exp_0[3] | ||
3915 | if b == nil then | ||
3916 | b = 3 | ||
3917 | end | ||
3918 | if 1 == _exp_0[1] and 2 == _exp_0[2] then | ||
3919 | print("1, 2, " .. tostring(b)) | ||
3920 | end | ||
3921 | end | ||
3922 | end | ||
3923 | end | ||
3924 | local _exp_0 = tb | ||
3925 | local _type_0 = type(_exp_0) | ||
3926 | local _tab_0 = "table" == _type_0 or "userdata" == _type_0 | ||
3927 | local _match_0 = false | ||
3928 | if _tab_0 then | ||
3929 | local result = _exp_0.result | ||
3930 | if true == _exp_0.success and result ~= nil then | ||
3931 | _match_0 = true | ||
3932 | print("成功", result) | ||
3933 | end | ||
3934 | end | ||
3935 | if not _match_0 then | ||
3936 | local _match_1 = false | ||
3937 | if _tab_0 then | ||
3938 | if false == _exp_0.success then | ||
3939 | _match_1 = true | ||
3940 | print("失败", result) | ||
3941 | end | ||
3942 | end | ||
3943 | if not _match_1 then | ||
3944 | print("无效值") | ||
3945 | end | ||
3946 | end | ||
3947 | local _exp_0 = tb | ||
3948 | local _type_0 = type(_exp_0) | ||
3949 | local _tab_0 = "table" == _type_0 or "userdata" == _type_0 | ||
3950 | local _match_0 = false | ||
3951 | if _tab_0 then | ||
3952 | local content | ||
3953 | do | ||
3954 | local _obj_0 = _exp_0.data | ||
3955 | local _type_1 = type(_obj_0) | ||
3956 | if "table" == _type_1 or "userdata" == _type_1 then | ||
3957 | content = _obj_0.content | ||
3958 | end | ||
3959 | end | ||
3960 | local _val_0 | ||
3961 | do | ||
3962 | local _obj_0 = _exp_0.data | ||
3963 | if _obj_0 ~= nil then | ||
3964 | _val_0 = _obj_0.type | ||
3965 | end | ||
3966 | end | ||
3967 | if "success" == _val_0 and content ~= nil then | ||
3968 | _match_0 = true | ||
3969 | print("成功", content) | ||
3970 | end | ||
3971 | end | ||
3972 | if not _match_0 then | ||
3973 | local _match_1 = false | ||
3974 | if _tab_0 then | ||
3975 | local content | ||
3976 | do | ||
3977 | local _obj_0 = _exp_0.data | ||
3978 | local _type_1 = type(_obj_0) | ||
3979 | if "table" == _type_1 or "userdata" == _type_1 then | ||
3980 | content = _obj_0.content | ||
3981 | end | ||
3982 | end | ||
3983 | local _val_0 | ||
3984 | do | ||
3985 | local _obj_0 = _exp_0.data | ||
3986 | if _obj_0 ~= nil then | ||
3987 | _val_0 = _obj_0.type | ||
3988 | end | ||
3989 | end | ||
3990 | if "error" == _val_0 and content ~= nil then | ||
3991 | _match_1 = true | ||
3992 | print("失败", content) | ||
3993 | end | ||
3994 | end | ||
3995 | if not _match_1 then | ||
3996 | print("无效值") | ||
3997 | end | ||
3998 | end | ||
3999 | local _exp_0 = tb | ||
4000 | local _type_0 = type(_exp_0) | ||
4001 | local _tab_0 = "table" == _type_0 or "userdata" == _type_0 | ||
4002 | if _tab_0 then | ||
4003 | local fourth = _exp_0[4] | ||
4004 | local _val_0 | ||
4005 | do | ||
4006 | local _obj_0 = _exp_0[1] | ||
4007 | if _obj_0 ~= nil then | ||
4008 | _val_0 = _obj_0.a | ||
4009 | end | ||
4010 | end | ||
4011 | local _val_1 | ||
4012 | do | ||
4013 | local _obj_0 = _exp_0[1] | ||
4014 | if _obj_0 ~= nil then | ||
4015 | _val_1 = _obj_0.b | ||
4016 | end | ||
4017 | end | ||
4018 | local _val_2 | ||
4019 | do | ||
4020 | local _obj_0 = _exp_0[2] | ||
4021 | if _obj_0 ~= nil then | ||
4022 | _val_2 = _obj_0.a | ||
4023 | end | ||
4024 | end | ||
4025 | local _val_3 | ||
4026 | do | ||
4027 | local _obj_0 = _exp_0[2] | ||
4028 | if _obj_0 ~= nil then | ||
4029 | _val_3 = _obj_0.b | ||
4030 | end | ||
4031 | end | ||
4032 | local _val_4 | ||
4033 | do | ||
4034 | local _obj_0 = _exp_0[3] | ||
4035 | if _obj_0 ~= nil then | ||
4036 | _val_4 = _obj_0.a | ||
4037 | end | ||
4038 | end | ||
4039 | local _val_5 | ||
4040 | do | ||
4041 | local _obj_0 = _exp_0[3] | ||
4042 | if _obj_0 ~= nil then | ||
4043 | _val_5 = _obj_0.b | ||
4044 | end | ||
4045 | end | ||
4046 | if 1 == _val_0 and 2 == _val_1 and 3 == _val_2 and 4 == _val_3 and 5 == _val_4 and 6 == _val_5 and fourth ~= nil then | ||
4047 | print("匹配成功", fourth) | ||
4048 | end | ||
4049 | end | ||
4050 | local segments = { | ||
4051 | "admin", | ||
4052 | "users", | ||
4053 | "logs", | ||
4054 | "view" | ||
4055 | } | ||
4056 | local _type_0 = type(segments) | ||
4057 | local _tab_0 = "table" == _type_0 or "userdata" == _type_0 | ||
4058 | if _tab_0 then | ||
4059 | local groups | ||
4060 | do | ||
4061 | local _accum_0 = { } | ||
4062 | local _len_0 = 1 | ||
4063 | local _max_0 = #segments + -3 + 1 | ||
4064 | for _index_0 = 1, _max_0 do | ||
4065 | local _item_0 = segments[_index_0] | ||
4066 | _accum_0[_len_0] = _item_0 | ||
4067 | _len_0 = _len_0 + 1 | ||
4068 | end | ||
4069 | groups = _accum_0 | ||
4070 | end | ||
4071 | local resource = segments[#segments - 1] | ||
4072 | local action = segments[#segments] | ||
4073 | if resource ~= nil and action ~= nil then | ||
4074 | print("Group:", groups) | ||
4075 | print("Resource:", resource) | ||
4076 | print("Action:", action) | ||
4077 | end | ||
4078 | end | ||
3287 | local Inventory | 4079 | local Inventory |
3288 | local _class_0 | 4080 | local _class_0 |
3289 | local _base_0 = { | 4081 | local _base_0 = { |
@@ -3940,6 +4732,10 @@ do | |||
3940 | _with_1["key-name"] = value | 4732 | _with_1["key-name"] = value |
3941 | end | 4733 | end |
3942 | _with_0[#_with_0 + 1] = "abc" | 4734 | _with_0[#_with_0 + 1] = "abc" |
4735 | local _with_0 = obj | ||
4736 | if _with_0 ~= nil then | ||
4737 | print(obj.name) | ||
4738 | end | ||
3943 | do | 4739 | do |
3944 | local var = "hello" | 4740 | local var = "hello" |
3945 | print(var) | 4741 | print(var) |