Packages

Elixir wrapper for Erlang's `:argparse` module

Current section

Files

Jump to
argparse_ex lib arg_parse parser transformers generate_parse.ex
Raw

lib/arg_parse/parser/transformers/generate_parse.ex

defmodule ArgParse.Parser.Transformers.GenerateParse do
use Spark.Dsl.Transformer
def transform(dsl_state) do
parse =
quote do
def parse(argv \\ System.argv()) do
# Our generated code can be very simple
# because we can get all the info we need from the module
# in our regular ELixir code.
ArgParse.Parser.parse(__MODULE__, argv)
end
end
parse! =
quote do
def parse!(argv \\ System.argv()) do
# Our generated code can be very simple
# because we can get all the info we need from the module
# in our regular ELixir code.
ArgParse.Parser.parse!(__MODULE__, argv)
end
end
dsl_state =
dsl_state
|> Spark.Dsl.Transformer.eval([], parse)
|> Spark.Dsl.Transformer.eval([], parse!)
{:ok, dsl_state}
end
end