aboutsummaryrefslogtreecommitdiff
path: root/spec/inputs
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2023-08-07 09:57:27 +0800
committerLi Jin <dragon-fly@qq.com>2023-08-07 09:57:27 +0800
commitc9b70274787ed8a77e7b47c4628197f0c6c1ba30 (patch)
treefae88047d312962aebfd97a0183c2f9f19e2cc76 /spec/inputs
parentaff8e69bf589d2ee5f4a7b72b7e2f643d55b87fa (diff)
downloadyuescript-c9b70274787ed8a77e7b47c4628197f0c6c1ba30.tar.gz
yuescript-c9b70274787ed8a77e7b47c4628197f0c6c1ba30.tar.bz2
yuescript-c9b70274787ed8a77e7b47c4628197f0c6c1ba30.zip
fixing issue #143 and #144.
Diffstat (limited to 'spec/inputs')
-rw-r--r--spec/inputs/attrib.yue31
1 files changed, 18 insertions, 13 deletions
diff --git a/spec/inputs/attrib.yue b/spec/inputs/attrib.yue
index 500ef0f..fbff75a 100644
--- a/spec/inputs/attrib.yue
+++ b/spec/inputs/attrib.yue
@@ -1,3 +1,5 @@
1const a, b, c, d = 1, 2, 3, 4
2
1do 3do
2 close a, b = setmetatable {},__close:=> print "closed" 4 close a, b = setmetatable {},__close:=> print "closed"
3 const c, d = 123, 'abc' 5 const c, d = 123, 'abc'
@@ -6,6 +8,12 @@ do
6 const c, d 8 const c, d
7 9
8do 10do
11 const a, {b, c}, {d} = f!, f1!
12
13do
14 const a, {b, c}, {d} = f!
15
16do
9 close v = if flag 17 close v = if flag
10 func! 18 func!
11 else 19 else
@@ -22,27 +30,24 @@ do
22 close d = 30 close d =
23 :value if a ?? b 31 :value if a ?? b
24 32
25macro defer = (item)-> "close _ = #{item}"
26macro defer_f = (func)-> "close _ = setmetatable {},__close:#{func}"
27
28do 33do
29 $defer with io.open "file.txt" 34 close _ = with io.open "file.txt"
30 \write "Hello" 35 \write "Hello"
31 36
32 $defer setmetatable {},__close:=> print "second" 37 close _ = <close>: -> print "second"
33 38
34 $defer_f -> print "first" 39 close _ = <close>: -> print "first"
35 40
36_defers = setmetatable {},__close:=> 41_defers = setmetatable {}, __close: =>
37 @[#@]! 42 @[#@]!
38 @[#@] = nil 43 @[#@] = nil
39 44
40macro defer_i = (item)-> " 45def = (item)->
41_defers[#_defers + 1] = #{item} 46 _defers[#_defers + 1] = item
42close _ = _defers" 47 _defers
43 48
44do 49do
45 $defer_i -> print 3 50 close _ = def -> print 3
46 $defer_i -> print 2 51 close _ = def -> print 2
47 $defer_i -> print 1 52 close _ = def -> print 1
48 53