iteraptor v1.2.0 Iteraptor.AST View Source

Iteraptor.AST module traverses AST, allowing map, reduce and family.

Link to this section Summary

Functions

Reduces the AST with an accumulator

Link to this section Functions

Link to this function reduce(input, acc, fun, opts \\ []) View Source

Reduces the AST with an accumulator.

Parameters

  • input: the AST to traverse
  • acc: the accumulator
  • fun: the function to be called on the tree element
  • opts: the options to be passed to the iteration

    • yield: :all | nil what to yield; default: nil for yielding values only.

Examples

iex> ":math.sin(42 * a / (3.14 * b)) > c"
...> |> Iteraptor.AST.reduce([], fn
...>      {var, _, val}, acc when is_atom(val) -> [var | acc]
...>      _, acc -> acc
...>    end)
...> |> Enum.reverse()
~w|a b c|a