summaryrefslogtreecommitdiff
path: root/Tools/LuaMacro/tests/test-pl-list.lua
diff options
context:
space:
mode:
authorchai <chaifix@163.com>2021-11-17 23:03:07 +0800
committerchai <chaifix@163.com>2021-11-17 23:03:07 +0800
commit27d6efb5f5a076f825fe2da1875e0cabaf02b4e7 (patch)
tree44f301110bc2ea742908ed92a78eba0803cd3b60 /Tools/LuaMacro/tests/test-pl-list.lua
parentb34310c631989551054d456eb47aaab5ded266a4 (diff)
+ LuaMacro
Diffstat (limited to 'Tools/LuaMacro/tests/test-pl-list.lua')
-rw-r--r--Tools/LuaMacro/tests/test-pl-list.lua12
1 files changed, 12 insertions, 0 deletions
diff --git a/Tools/LuaMacro/tests/test-pl-list.lua b/Tools/LuaMacro/tests/test-pl-list.lua
new file mode 100644
index 0000000..26641aa
--- /dev/null
+++ b/Tools/LuaMacro/tests/test-pl-list.lua
@@ -0,0 +1,12 @@
+-- Wrapping list comprehensions so that they return a pl.List
+-- the trick here is that the L macro will pop its macro stack at the end,
+-- if set. Here we want to wrap L{...} so it returns a list, so we have
+-- List(L{...}). By pushing ')', L will emit the close parens for us.
+require 'pl'
+require_ 'macro.forall'
+
+def_ LL List( _PUSH_('L',')') L
+
+print(LL{i|i=1,3}..LL{i|i=10,20,5})
+
+print( LL{List{k,v} for k,v in pairs{A=1,B=2}} )