This commit is contained in:
26
lib/test.ex
26
lib/test.ex
@@ -1,9 +1,23 @@
|
||||
defmodule Test do
|
||||
|
||||
defmacro createfuncBase(name) do
|
||||
quote do
|
||||
def unquote(name)(true), do: true
|
||||
defmacro createfuncBase(name, do: do_exp, else: else_exp) do
|
||||
b1 = quote do
|
||||
false -> unquote(else_exp)
|
||||
end
|
||||
|
||||
b2 = b1 ++ do_exp
|
||||
|
||||
t = quote do
|
||||
def test(v) do
|
||||
case v do
|
||||
unquote(b2)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
IO.puts("test #{inspect(t)}")
|
||||
|
||||
t
|
||||
end
|
||||
|
||||
end
|
||||
@@ -11,7 +25,7 @@ end
|
||||
defmodule Test2 do
|
||||
require Test
|
||||
|
||||
def test(), do: false
|
||||
|
||||
Test.createfuncBase(:test)
|
||||
Test.createfuncBase :lol do
|
||||
true -> :test
|
||||
else :test1 end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user