Packages

A more general kind of sorcerer.

Current section

Files

Jump to
mage lib mage.ex
Raw

lib/mage.ex

defmodule Mage do
@moduledoc false
def postwalk(ast, fun) do
walker = fn ast ->
result_ast = fun.(ast)
if result_ast == ast do
ast
else
case result_ast do
{op, meta, args} ->
{op, Keyword.put(meta, :__patch__, true), args}
val ->
val
end
end
end
Macro.postwalk(ast, walker)
end
def to_string(ast) do
Mage.Code.to_string(ast)
end
def parse_string!(source) do
Mage.Code.parse_string!(source)
end
end