diff options
author | Li Jin <dragon-fly@qq.com> | 2022-07-12 17:41:19 +0800 |
---|---|---|
committer | Li Jin <dragon-fly@qq.com> | 2022-07-12 17:41:19 +0800 |
commit | 68e167e9f0b90968ea67b7f21fdc50a48d129173 (patch) | |
tree | 64612476c7cc5636d7a9eea68ea1e5b449bb9732 /spec/outputs/destructure.lua | |
parent | 1a7c8e3c38fcf0af94ca799a3cd9fa7c4ef1bf08 (diff) | |
download | yuescript-68e167e9f0b90968ea67b7f21fdc50a48d129173.tar.gz yuescript-68e167e9f0b90968ea67b7f21fdc50a48d129173.tar.bz2 yuescript-68e167e9f0b90968ea67b7f21fdc50a48d129173.zip |
add table pattern matching syntax and fix issue #93, remove a confusing default value syntax for destructuring.
Diffstat (limited to 'spec/outputs/destructure.lua')
-rw-r--r-- | spec/outputs/destructure.lua | 121 |
1 files changed, 71 insertions, 50 deletions
diff --git a/spec/outputs/destructure.lua b/spec/outputs/destructure.lua index 9b16181..2fe4ba9 100644 --- a/spec/outputs/destructure.lua +++ b/spec/outputs/destructure.lua | |||
@@ -229,12 +229,12 @@ do | |||
229 | do | 229 | do |
230 | local _obj_0 = person | 230 | local _obj_0 = person |
231 | name, job = _obj_0.name, _obj_0.job | 231 | name, job = _obj_0.name, _obj_0.job |
232 | end | 232 | if name == nil then |
233 | if name == nil then | 233 | name = "nameless" |
234 | name = "nameless" | 234 | end |
235 | end | 235 | if job == nil then |
236 | if job == nil then | 236 | job = "jobless" |
237 | job = "jobless" | 237 | end |
238 | end | 238 | end |
239 | local request | 239 | local request |
240 | request = function(url, options) | 240 | request = function(url, options) |
@@ -261,29 +261,29 @@ do | |||
261 | do | 261 | do |
262 | local _obj_0 = tb | 262 | local _obj_0 = tb |
263 | value1, key3 = _obj_0.key1.key2, _obj_0.key3 | 263 | value1, key3 = _obj_0.key1.key2, _obj_0.key3 |
264 | end | 264 | if value1 == nil then |
265 | if value1 == nil then | 265 | value1 = 123 |
266 | value1 = 123 | 266 | end |
267 | end | 267 | if key3 == nil then |
268 | if key3 == nil then | 268 | key3 = "abc" |
269 | key3 = "abc" | 269 | end |
270 | end | 270 | end |
271 | local mt, call, add | 271 | local mt, call, add |
272 | do | 272 | do |
273 | local _obj_0 = getmetatable(tb) | 273 | local _obj_0 = getmetatable(tb) |
274 | mt, call, add = _obj_0, getmetatable(_obj_0).__call, getmetatable(_obj_0).__add | 274 | mt, call, add = _obj_0, getmetatable(_obj_0).__call, getmetatable(_obj_0).__add |
275 | end | 275 | if mt == nil then |
276 | if mt == nil then | 276 | mt = { |
277 | mt = { | 277 | __index = { |
278 | __index = { | 278 | abc = 123 |
279 | abc = 123 | 279 | } |
280 | } | 280 | } |
281 | } | 281 | end |
282 | end | 282 | if call == nil then |
283 | if call == nil then | 283 | call = (function() |
284 | call = (function() | 284 | return { } |
285 | return { } | 285 | end) |
286 | end) | 286 | end |
287 | end | 287 | end |
288 | local _obj_0 = tb | 288 | local _obj_0 = tb |
289 | local mtx, y, zItem = getmetatable(_obj_0.x), _obj_0.y, _obj_0.z | 289 | local mtx, y, zItem = getmetatable(_obj_0.x), _obj_0.y, _obj_0.z |
@@ -296,27 +296,33 @@ do | |||
296 | return nil | 296 | return nil |
297 | end | 297 | end |
298 | end | 298 | end |
299 | local _obj_1 = getmetatable(tb).func | 299 | do |
300 | if _obj_1 == nil then | 300 | local _tmp_0 |
301 | do | 301 | do |
302 | local _obj_2 = item | 302 | local _obj_1 = getmetatable(tb) |
303 | if _obj_2 ~= nil then | 303 | _tmp_0 = _obj_1.func |
304 | _obj_1 = _obj_2.defVal | 304 | end |
305 | if _tmp_0 == nil then | ||
306 | do | ||
307 | local _obj_1 = item | ||
308 | if _obj_1 ~= nil then | ||
309 | _tmp_0 = _obj_1.defVal | ||
310 | end | ||
305 | end | 311 | end |
306 | end | 312 | end |
307 | end | 313 | a.b(function() |
308 | a.b(function() | ||
309 | return 123 | 314 | return 123 |
310 | end).c = _obj_1 | 315 | end).c = _tmp_0 |
316 | end | ||
311 | end | 317 | end |
312 | do | 318 | do |
313 | local mt, subFunc | 319 | local mt, subFunc |
314 | do | 320 | do |
315 | local _obj_0 = getmetatable(tb.x) | 321 | local _obj_0 = getmetatable(tb.x) |
316 | mt, subFunc = _obj_0, _obj_0.__sub | 322 | mt, subFunc = _obj_0, _obj_0.__sub |
317 | end | 323 | if mt == nil then |
318 | if mt == nil then | 324 | mt = { } |
319 | mt = { } | 325 | end |
320 | end | 326 | end |
321 | end | 327 | end |
322 | do | 328 | do |
@@ -324,27 +330,28 @@ do | |||
324 | do | 330 | do |
325 | local _obj_0 = tb | 331 | local _obj_0 = tb |
326 | mt, subFunc = getmetatable(_obj_0.x), getmetatable(_obj_0.x).__sub | 332 | mt, subFunc = getmetatable(_obj_0.x), getmetatable(_obj_0.x).__sub |
327 | end | 333 | if mt == nil then |
328 | if mt == nil then | 334 | mt = { } |
329 | mt = { } | 335 | end |
330 | end | 336 | end |
331 | end | 337 | end |
332 | do | 338 | do |
333 | local a, b, _obj_0 | 339 | local a, b |
334 | do | 340 | do |
335 | local _obj_1 = tb | 341 | local _obj_0 = tb |
336 | a, b, _obj_0 = _obj_1[1], _obj_1[2], _obj_1.c[1] | 342 | local _tmp_0 |
337 | end | 343 | a, b, _tmp_0 = _obj_0[1], _obj_0[2], _obj_0.c[1] |
338 | if a == nil then | 344 | if a == nil then |
339 | a = 1 | 345 | a = 1 |
340 | end | 346 | end |
341 | if b == nil then | 347 | if b == nil then |
342 | b = 2 | 348 | b = 2 |
343 | end | 349 | end |
344 | if _obj_0 == nil then | 350 | if _tmp_0 == nil then |
345 | _obj_0 = 3 | 351 | _tmp_0 = 3 |
352 | end | ||
353 | d.e = _tmp_0 | ||
346 | end | 354 | end |
347 | d.e = _obj_0 | ||
348 | local _list_0 = tuples | 355 | local _list_0 = tuples |
349 | for _index_0 = 1, #_list_0 do | 356 | for _index_0 = 1, #_list_0 do |
350 | local _des_0 = _list_0[_index_0] | 357 | local _des_0 = _list_0[_index_0] |
@@ -365,3 +372,17 @@ do | |||
365 | a, b = _obj_0[2], _obj_0[4] | 372 | a, b = _obj_0[2], _obj_0[4] |
366 | end | 373 | end |
367 | end | 374 | end |
375 | do | ||
376 | do | ||
377 | local _obj_0 = x.x.x | ||
378 | local _tmp_0, _tmp_1 = _obj_0.x, _obj_0.y | ||
379 | if _tmp_0 == nil then | ||
380 | _tmp_0 = 1 | ||
381 | end | ||
382 | if _tmp_1 == nil then | ||
383 | _tmp_1 = 2 | ||
384 | end | ||
385 | a.b = _tmp_0 | ||
386 | a.c = _tmp_1 | ||
387 | end | ||
388 | end | ||