From 14d7e02285857226e26288c1ac83a14eb4fbd478 Mon Sep 17 00:00:00 2001
From: Li Jin <dragon-fly@qq.com>
Date: Mon, 23 Mar 2020 10:45:24 +0800
Subject: add support for macro system expanding to Lua codes directly.

---
 spec/inputs/macro.moon | 33 +++++++++++++++++++++++++++++++++
 1 file changed, 33 insertions(+)

(limited to 'spec')

diff --git a/spec/inputs/macro.moon b/spec/inputs/macro.moon
index 9083449..47e5a26 100644
--- a/spec/inputs/macro.moon
+++ b/spec/inputs/macro.moon
@@ -102,5 +102,38 @@ do
 	a += $get_inner_hygienic!
 	print a
 
+macro lua lua = (codes)-> "#{codes}"
+
+x = 0
+
+$lua [[
+local function f(a)
+	return a + 1
+end
+x = x + f(3)
+]]
+
+print x
+
+macro lua def = (fname, ...)->
+	args = {...}
+	last = table.remove args
+	$showMacro "def", "local function #{fname}(#{table.concat args, ', '})
+	#{last}
+end"
+
+sel = (a, b, c)-> if a then b else c
+
+$def sel, a, b, c, [[
+	if a then
+		return b
+	else
+		return c
+	end
+]]
+
+$def dummy,[[
+]]
+
 nil
 
-- 
cgit v1.2.3-55-g6feb