sum_mag v0.0.5 SumMag

SumMag: a meta-programming library for Hastega and Cockatorice.

Link to this section Summary

Link to this section Functions

Link to this function concat_name_nif(name, env)

## Examples

iex> :func |> SumMag.concat_name_nif(%{}) :func_nif

Link to this function concat_name_stub(name, env)

## Examples

iex> :hastega |> SumMag.concat_name_stub(%{}) :hastegastub

Link to this function convert_args(arg_list, env)

## Examples

iex> [] |> SumMag.convert_args(%{}) []

iex> [{:a, [], Elixir}] |> SumMag.convert_args(%{}) [:a]

iex> [{:a, [], Elixir}, {:b, [], Elixir}] |> SumMag.convert_args(%{}) [:a, :b]

Link to this function parse_args(body, env)

## Examples

iex> [{:null, [context: Elixir], []}, [do: {:nil, [], Elixir}]] |> SumMag.parse_args(%{}) []

iex> [{:func, [context: Elixir], [{:a, [], Elixir}]}, [do: {:a, [], Elixir}]] |> SumMag.parse_args(%{}) [:a]

iex> [{:add, [context: Elixir], [{:a, [], Elixir}, {:b, [], Elixir}]},[do: {:+, [context: Elixir, import: Kernel], [{:a, [], Elixir}, {:b, [], Elixir}]}]] |> SumMag.parse_args(%{}) [:a, :b]

Link to this function parse_do(body, env)

## Examples

iex> [{:null, [context: Elixir], []}, [do: {:nil, [], Elixir}]] |> SumMag.parse_do(%{}) [{:nil, [], Elixir}]

iex> [{:func, [context: Elixir], [{:a, [], Elixir}]}, [do: {:a, [], Elixir}]] |> SumMag.parse_do(%{}) [{:a, [], Elixir}]

iex> [{:add, [context: Elixir], [{:a, [], Elixir}, {:b, [], Elixir}]},[do: {:+, [context: Elixir, import: Kernel], [{:a, [], Elixir}, {:b, [], Elixir}]}]] |> SumMag.parse_do(%{}) [{:+, [context: Elixir, import: Kernel], [{:a, [], Elixir}, {:b, [], Elixir}]}]

Link to this function parse_function_name(body, env)

## Examples

iex> [{:null, [context: Elixir], []}, [do: {:nil, [], Elixir}]] |> SumMag.parse_function_name(%{}) :null

iex> [{:func, [context: Elixir], [{:a, [], Elixir}]}, [do: {:a, [], Elixir}]] |> SumMag.parse_function_name(%{}) :func

iex> [{:add, [context: Elixir], [{:a, [], Elixir}, {:b, [], Elixir}]},[do: {:+, [context: Elixir, import: Kernel], [{:a, [], Elixir}, {:b, [], Elixir}]}]] |> SumMag.parse_function_name(%{}) :add