aboutsummaryrefslogtreecommitdiff
path: root/spec
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2024-08-05 17:20:00 +0800
committerLi Jin <dragon-fly@qq.com>2024-08-05 17:20:00 +0800
commit94edfbc8c7d62d700dfb59334a0ed3beedd49493 (patch)
treef695cec8b8873d5a6e763ac94bf3c81fb6ba0be9 /spec
parentf8cd1220147d606b7e96f88c12fd0f163fb4e1c5 (diff)
downloadyuescript-94edfbc8c7d62d700dfb59334a0ed3beedd49493.tar.gz
yuescript-94edfbc8c7d62d700dfb59334a0ed3beedd49493.tar.bz2
yuescript-94edfbc8c7d62d700dfb59334a0ed3beedd49493.zip
add macros generating macros feature.v0.23.9
Diffstat (limited to 'spec')
-rw-r--r--spec/inputs/macro.yue33
-rw-r--r--spec/inputs/macro_export.yue18
-rw-r--r--spec/outputs/codes_from_doc.lua2
-rw-r--r--spec/outputs/codes_from_doc_zh.lua2
-rw-r--r--spec/outputs/macro.lua11
5 files changed, 65 insertions, 1 deletions
diff --git a/spec/inputs/macro.yue b/spec/inputs/macro.yue
index ae14f53..a2e1046 100644
--- a/spec/inputs/macro.yue
+++ b/spec/inputs/macro.yue
@@ -5,6 +5,39 @@ import "macro_export" as {
5 5
6import "macro_todo" as $ 6import "macro_todo" as $
7 7
8macro WindowFlag = $enum(
9 NoNav
10 NoDecoration
11 NoTitleBar
12 NoResize
13 NoMove
14 NoScrollbar
15 NoScrollWithMouse
16 NoCollapse
17 AlwaysAutoResize
18 NoSavedSettings
19 NoInputs
20 MenuBar
21 HorizontalScrollbar
22 NoFocusOnAppearing
23 NoBringToFrontOnFocus
24 AlwaysVerticalScrollbar
25 AlwaysHorizontalScrollbar
26 NoNavInputs
27 NoNavFocus
28 UnsavedDocument
29)
30
31print $WindowFlag AlwaysAutoResize
32print $WindowFlag(
33 NoNav
34 NoDecoration
35 NoTitleBar
36 NoResize
37 NoMove
38 NoScrollbar
39)
40
8$asserts item == nil 41$asserts item == nil
9 42
10$myconfig false 43$myconfig false
diff --git a/spec/inputs/macro_export.yue b/spec/inputs/macro_export.yue
index eec5848..cc7d459 100644
--- a/spec/inputs/macro_export.yue
+++ b/spec/inputs/macro_export.yue
@@ -44,6 +44,24 @@ do
44 _dst_.#{field} = _src_.#{field} 44 _dst_.#{field} = _src_.#{field}
45"}" 45"}"
46 46
47export macro enum = (...) ->
48 items = {...}
49 items = [item\gsub('"', '') for item in *items]
50 itemSet = {item, true for item in *items}
51 (...) ->
52 count = select "#", ...
53 if 1 < count
54 result = "["
55 for i = 1, count
56 item = select i, ...
57 error "got \"#{item}\", expecting one of #{table.concat items, ', '}" unless itemSet[item]
58 result ..= "\"#{item}\","
59 result .. "]"
60 else
61 item = select 1, ...
62 error "got \"#{item}\", expecting one of #{table.concat items, ', '}" unless itemSet[item]
63 "\"#{item}\""
64
47$ -> 65$ ->
48 global debugMode = true 66 global debugMode = true
49 global debugMacro = true 67 global debugMacro = true
diff --git a/spec/outputs/codes_from_doc.lua b/spec/outputs/codes_from_doc.lua
index 6f61569..4073056 100644
--- a/spec/outputs/codes_from_doc.lua
+++ b/spec/outputs/codes_from_doc.lua
@@ -71,6 +71,7 @@ if cond then
71end 71end
72print("yuescript") 72print("yuescript")
73print(3) 73print(3)
74print("Valid enum type:", "Static")
74if tb ~= nil then 75if tb ~= nil then
75 tb:func() 76 tb:func()
76end 77end
@@ -2068,6 +2069,7 @@ if cond then
2068end 2069end
2069print("yuescript") 2070print("yuescript")
2070print(3) 2071print(3)
2072print("Valid enum type:", "Static")
2071if tb ~= nil then 2073if tb ~= nil then
2072 tb:func() 2074 tb:func()
2073end 2075end
diff --git a/spec/outputs/codes_from_doc_zh.lua b/spec/outputs/codes_from_doc_zh.lua
index aa53926..f251450 100644
--- a/spec/outputs/codes_from_doc_zh.lua
+++ b/spec/outputs/codes_from_doc_zh.lua
@@ -71,6 +71,7 @@ if cond then
71end 71end
72print("yuescript") 72print("yuescript")
73print(3) 73print(3)
74print("有效的枚举类型:", "Static")
74if tb ~= nil then 75if tb ~= nil then
75 tb:func() 76 tb:func()
76end 77end
@@ -2062,6 +2063,7 @@ if cond then
2062end 2063end
2063print("yuescript") 2064print("yuescript")
2064print(3) 2065print(3)
2066print("有效的枚举类型:", "Static")
2065if tb ~= nil then 2067if tb ~= nil then
2066 tb:func() 2068 tb:func()
2067end 2069end
diff --git a/spec/outputs/macro.lua b/spec/outputs/macro.lua
index 2ee3e0a..953c260 100644
--- a/spec/outputs/macro.lua
+++ b/spec/outputs/macro.lua
@@ -1,3 +1,12 @@
1print("AlwaysAutoResize")
2print({
3 "NoNav",
4 "NoDecoration",
5 "NoTitleBar",
6 "NoResize",
7 "NoMove",
8 "NoScrollbar"
9})
1do 10do
2 assert(item == nil) 11 assert(item == nil)
3end 12end
@@ -285,7 +294,7 @@ print((setmetatable({
285 return 998 294 return 998
286 end 295 end
287})) 296}))
288print("current line: " .. tostring(268)) 297print("current line: " .. tostring(301))
289do 298do
290-- TODO 299-- TODO
291end 300end