diff options
| author | Li Jin <dragon-fly@qq.com> | 2022-11-21 16:56:43 +0800 |
|---|---|---|
| committer | Li Jin <dragon-fly@qq.com> | 2022-11-21 16:56:43 +0800 |
| commit | 58cf1a70971ad37ef9260aa93851e92fd6e4c1ce (patch) | |
| tree | fbf8e3ae38b7b230122aac32e5461c5570dc88bf /spec/outputs/switch.lua | |
| parent | 8abf668c0b031c0aa81f186745eaf154aa036c8a (diff) | |
| download | yuescript-58cf1a70971ad37ef9260aa93851e92fd6e4c1ce.tar.gz yuescript-58cf1a70971ad37ef9260aa93851e92fd6e4c1ce.tar.bz2 yuescript-58cf1a70971ad37ef9260aa93851e92fd6e4c1ce.zip | |
fix table pattern matching. confirm fixing issue #116.
Diffstat (limited to 'spec/outputs/switch.lua')
| -rw-r--r-- | spec/outputs/switch.lua | 48 |
1 files changed, 32 insertions, 16 deletions
diff --git a/spec/outputs/switch.lua b/spec/outputs/switch.lua index 4358027..3c48120 100644 --- a/spec/outputs/switch.lua +++ b/spec/outputs/switch.lua | |||
| @@ -107,37 +107,43 @@ do | |||
| 107 | } | 107 | } |
| 108 | } | 108 | } |
| 109 | do | 109 | do |
| 110 | local _tab_0 = "table" == type(dict) | 110 | local _tab_0 = type(dict) |
| 111 | _tab_0 = "table" == _tab_0 or "userdata" == _tab_0 | ||
| 111 | if _tab_0 then | 112 | if _tab_0 then |
| 112 | local first = dict[1] | 113 | local first = dict[1] |
| 113 | local one | 114 | local one |
| 114 | do | 115 | do |
| 115 | local _obj_0 = dict[2] | 116 | local _obj_0 = dict[2] |
| 116 | if _obj_0 ~= nil then | 117 | local _type_0 = type(_obj_0) |
| 118 | if "table" == _type_0 or "userdata" == _type_0 then | ||
| 117 | one = _obj_0[1] | 119 | one = _obj_0[1] |
| 118 | end | 120 | end |
| 119 | end | 121 | end |
| 120 | local two | 122 | local two |
| 121 | do | 123 | do |
| 122 | local _obj_0 = dict[2] | 124 | local _obj_0 = dict[2] |
| 123 | if _obj_0 ~= nil then | 125 | local _type_0 = type(_obj_0) |
| 126 | if "table" == _type_0 or "userdata" == _type_0 then | ||
| 124 | two = _obj_0[2] | 127 | two = _obj_0[2] |
| 125 | end | 128 | end |
| 126 | end | 129 | end |
| 127 | local three | 130 | local three |
| 128 | do | 131 | do |
| 129 | local _obj_0 = dict[2] | 132 | local _obj_0 = dict[2] |
| 130 | if _obj_0 ~= nil then | 133 | local _type_0 = type(_obj_0) |
| 134 | if "table" == _type_0 or "userdata" == _type_0 then | ||
| 131 | three = _obj_0[3] | 135 | three = _obj_0[3] |
| 132 | end | 136 | end |
| 133 | end | 137 | end |
| 134 | local c | 138 | local c |
| 135 | do | 139 | do |
| 136 | local _obj_0 = dict.a | 140 | local _obj_0 = dict.a |
| 137 | if _obj_0 ~= nil then | 141 | local _type_0 = type(_obj_0) |
| 142 | if "table" == _type_0 or "userdata" == _type_0 then | ||
| 138 | do | 143 | do |
| 139 | local _obj_1 = _obj_0.b | 144 | local _obj_1 = _obj_0.b |
| 140 | if _obj_1 ~= nil then | 145 | local _type_1 = type(_obj_1) |
| 146 | if "table" == _type_1 or "userdata" == _type_1 then | ||
| 141 | c = _obj_1.c | 147 | c = _obj_1.c |
| 142 | end | 148 | end |
| 143 | end | 149 | end |
| @@ -146,10 +152,12 @@ do | |||
| 146 | local z | 152 | local z |
| 147 | do | 153 | do |
| 148 | local _obj_0 = dict.x | 154 | local _obj_0 = dict.x |
| 149 | if _obj_0 ~= nil then | 155 | local _type_0 = type(_obj_0) |
| 156 | if "table" == _type_0 or "userdata" == _type_0 then | ||
| 150 | do | 157 | do |
| 151 | local _obj_1 = _obj_0.y | 158 | local _obj_1 = _obj_0.y |
| 152 | if _obj_1 ~= nil then | 159 | local _type_1 = type(_obj_1) |
| 160 | if "table" == _type_1 or "userdata" == _type_1 then | ||
| 153 | z = _obj_1.z | 161 | z = _obj_1.z |
| 154 | end | 162 | end |
| 155 | end | 163 | end |
| @@ -176,7 +184,8 @@ do | |||
| 176 | for _index_0 = 1, #items do | 184 | for _index_0 = 1, #items do |
| 177 | local item = items[_index_0] | 185 | local item = items[_index_0] |
| 178 | do | 186 | do |
| 179 | local _tab_0 = "table" == type(item) | 187 | local _tab_0 = type(item) |
| 188 | _tab_0 = "table" == _tab_0 or "userdata" == _tab_0 | ||
| 180 | local _match_0 = false | 189 | local _match_0 = false |
| 181 | if _tab_0 then | 190 | if _tab_0 then |
| 182 | local x = item.x | 191 | local x = item.x |
| @@ -234,7 +243,8 @@ end | |||
| 234 | do | 243 | do |
| 235 | local tb = { } | 244 | local tb = { } |
| 236 | do | 245 | do |
| 237 | local _tab_0 = "table" == type(tb) | 246 | local _tab_0 = type(tb) |
| 247 | _tab_0 = "table" == _tab_0 or "userdata" == _tab_0 | ||
| 238 | if _tab_0 then | 248 | if _tab_0 then |
| 239 | local a = tb.a | 249 | local a = tb.a |
| 240 | local b = tb.b | 250 | local b = tb.b |
| @@ -248,7 +258,8 @@ do | |||
| 248 | end | 258 | end |
| 249 | end | 259 | end |
| 250 | do | 260 | do |
| 251 | local _tab_0 = "table" == type(tb) | 261 | local _tab_0 = type(tb) |
| 262 | _tab_0 = "table" == _tab_0 or "userdata" == _tab_0 | ||
| 252 | if _tab_0 then | 263 | if _tab_0 then |
| 253 | local a = tb.a | 264 | local a = tb.a |
| 254 | local b = tb.b | 265 | local b = tb.b |
| @@ -261,7 +272,8 @@ do | |||
| 261 | end | 272 | end |
| 262 | end | 273 | end |
| 263 | do | 274 | do |
| 264 | local _tab_0 = "table" == type(tb) | 275 | local _tab_0 = type(tb) |
| 276 | _tab_0 = "table" == _tab_0 or "userdata" == _tab_0 | ||
| 265 | local _match_0 = false | 277 | local _match_0 = false |
| 266 | if _tab_0 then | 278 | if _tab_0 then |
| 267 | local a = tb.a | 279 | local a = tb.a |
| @@ -281,7 +293,8 @@ do | |||
| 281 | x = "abc" | 293 | x = "abc" |
| 282 | } | 294 | } |
| 283 | do | 295 | do |
| 284 | local _tab_0 = "table" == type(tb) | 296 | local _tab_0 = type(tb) |
| 297 | _tab_0 = "table" == _tab_0 or "userdata" == _tab_0 | ||
| 285 | local _match_0 = false | 298 | local _match_0 = false |
| 286 | if _tab_0 then | 299 | if _tab_0 then |
| 287 | local x = tb.x | 300 | local x = tb.x |
| @@ -308,7 +321,8 @@ do | |||
| 308 | if 1 == _exp_0 then | 321 | if 1 == _exp_0 then |
| 309 | matched = "1" | 322 | matched = "1" |
| 310 | else | 323 | else |
| 311 | local _tab_0 = "table" == type(_exp_0) | 324 | local _tab_0 = type(_exp_0) |
| 325 | _tab_0 = "table" == _tab_0 or "userdata" == _tab_0 | ||
| 312 | local _match_0 = false | 326 | local _match_0 = false |
| 313 | if _tab_0 then | 327 | if _tab_0 then |
| 314 | local x = _exp_0.x | 328 | local x = _exp_0.x |
| @@ -333,7 +347,8 @@ do | |||
| 333 | return "invalid" | 347 | return "invalid" |
| 334 | else | 348 | else |
| 335 | do | 349 | do |
| 336 | local _tab_0 = "table" == type(_exp_0) | 350 | local _tab_0 = type(_exp_0) |
| 351 | _tab_0 = "table" == _tab_0 or "userdata" == _tab_0 | ||
| 337 | local _match_0 = false | 352 | local _match_0 = false |
| 338 | if _tab_0 then | 353 | if _tab_0 then |
| 339 | local a = _exp_0.a | 354 | local a = _exp_0.a |
| @@ -367,7 +382,8 @@ end | |||
| 367 | do | 382 | do |
| 368 | do | 383 | do |
| 369 | local _exp_0 = y | 384 | local _exp_0 = y |
| 370 | local _tab_0 = "table" == type(_exp_0) | 385 | local _tab_0 = type(_exp_0) |
| 386 | _tab_0 = "table" == _tab_0 or "userdata" == _tab_0 | ||
| 371 | if _tab_0 then | 387 | if _tab_0 then |
| 372 | local mt = (function() | 388 | local mt = (function() |
| 373 | local _obj_0 = _exp_0.x | 389 | local _obj_0 = _exp_0.x |
