new
Umwelt (context) > Parser

Parser

Extracts metadata from AST


concepts
Aliases ()

Parses @attr AST

Attrs ()

Parses @attr AST

Block ()

Parses list of ASTs from block

Call ()

Parses Call() AST

Def ()

Parses Function AST

Defimpl ()

Parses :defimpl AST

Defmodule ()

Parses Module AST

Defprotocol ()

Parses :defprotocol AST

Defstruct ()

Parses Struct definition AST

Functions ()

Parses Module AST

Literal ()

Parses value AST

Macro ()

Parses various AST, kinda router

Operator ()

Parses Operator AST:

Pipe ()

Parses Pipe AST

Root ()

Parses Root Module AST

Sigil ()

Parses Sigil AST

Signature ()

Parses Function AST

Struct ()

Indexes struct types in map

Structure ()

Parses %Structure{} and <<>> AST

Types ()

Extracts types

Typespec ()

Parses Typespec definition AST

Util ()

Reducer for AST


attrs

fields

signatures
⨌ read_ast / 1 (anything) Signature inference is ambiguous, choose stricter type

Head of read_ast/1

⨌ parse_source / 1 (anything) Signature inference is ambiguous, choose stricter type

Head of parse_source/1

⨌ parse_root_source / 1 (anything) Signature inference is ambiguous, choose stricter type

Head of parse_root_source/1

⨌ parse_root / 1 (anything) Signature inference is ambiguous, choose stricter type

Head of parse_root/1

⨌ parse_raw / 1 (anything) Signature inference is ambiguous, choose stricter type

Head of parse_raw/1

⨌ parse_other_sources / 1 (anything) Signature inference is ambiguous, choose stricter type

Head of parse_other_sources/1

⨌ parse_ast / 1 (anything) Signature inference is ambiguous, choose stricter type

Head of parse_ast/1

⨌ index_root / 1 (anything) Signature inference is ambiguous, choose stricter type

Head of index_root/1

⨌ index_deep / 1 (anything) Signature inference is ambiguous, choose stricter type

Head of index_deep/1

⨌ parse_list / 3 (anything) Signature inference is ambiguous, choose stricter type

Head of parse_list/3

⨌ parse / 3 (anything) Signature inference is ambiguous, choose stricter type

Head of parse/3

⨌ maybe_list_parse / 3 (anything) Signature inference is ambiguous, choose stricter type

Head of maybe_list_parse/3


samples

implements

protocols

lib/umwelt/parser.ex
defmodule Umwelt.Parser do @moduledoc "Extracts metadata from AST" alias Umwelt.Parser @doc "Head of read_ast/1" @spec read_ast(tuple) :: any def read_ast(tuple) def read_ast({:ok, code}) do end def read_ast({:error, msg}) do end def read_ast(tuple) when is_binary(code) do end @doc "Head of parse_source/1" @spec parse_source(any) :: any def parse_source(project) do end @doc "Head of parse_root_source/1" @spec parse_root_source(any) :: any def parse_root_source(project) do end @doc "Head of parse_root/1" @spec parse_root(tuple) :: any def parse_root({:ok, ast}) do end @doc "Head of parse_raw/1" @spec parse_raw(any) :: any def parse_raw(code) do end @doc "Head of parse_other_sources/1" @spec parse_other_sources(any) :: any def parse_other_sources(project) do end @doc "Head of parse_list/3" @spec parse_list(any, any, any) :: any def parse_list(ast, aliases, context) when is_list(ast) do end @doc "Head of parse_ast/1" @spec parse_ast(tuple) :: any def parse_ast(tuple) def parse_ast({:error, _}) do end def parse_ast({:ok, {:__block__, _, []}}) do end def parse_ast({:ok, match({:__block__, _, _}, block)}) do end def parse_ast({:ok, ast}) do end @doc "Head of parse/3" @spec parse(tuple, any, any) :: any def parse(ast, aliases, context) def parse(ast, aliases, context) when is_macro(ast) do end def parse(ast, aliases, context) do end def parse(ast, aliases, context) when is_list(ast) do end def parse(ast, aliases, context) do end @doc "Head of maybe_list_parse/3" @spec maybe_list_parse(any, any, any) :: any def maybe_list_parse(ast, aliases, context) def maybe_list_parse(ast, aliases, context) when is_list(ast) do end def maybe_list_parse(ast, aliases, context) do end @doc "Head of index_root/1" @spec index_root(any) :: any def index_root(parsed) do end @doc "Head of index_deep/1" @spec index_deep(any) :: any def index_deep(parsed) do end end

defmodule Umwelt.Parser do
  @moduledoc "Extracts metadata from AST"
  alias Umwelt.Parser
  @doc "Head of read_ast/1"
  @spec read_ast(tuple) :: any
  def read_ast(tuple)

  def read_ast({:ok, code}) do
  end

  def read_ast({:error, msg}) do
  end

  def read_ast(tuple) when is_binary(code) do
  end

  @doc "Head of parse_source/1"
  @spec parse_source(any) :: any
  def parse_source(project) do
  end

  @doc "Head of parse_root_source/1"
  @spec parse_root_source(any) :: any
  def parse_root_source(project) do
  end

  @doc "Head of parse_root/1"
  @spec parse_root(tuple) :: any
  def parse_root({:ok, ast}) do
  end

  @doc "Head of parse_raw/1"
  @spec parse_raw(any) :: any
  def parse_raw(code) do
  end

  @doc "Head of parse_other_sources/1"
  @spec parse_other_sources(any) :: any
  def parse_other_sources(project) do
  end

  @doc "Head of parse_list/3"
  @spec parse_list(any, any, any) :: any
  def parse_list(ast, aliases, context) when is_list(ast) do
  end

  @doc "Head of parse_ast/1"
  @spec parse_ast(tuple) :: any
  def parse_ast(tuple)

  def parse_ast({:error, _}) do
  end

  def parse_ast({:ok, {:__block__, _, []}}) do
  end

  def parse_ast({:ok, match({:__block__, _, _}, block)}) do
  end

  def parse_ast({:ok, ast}) do
  end

  @doc "Head of parse/3"
  @spec parse(tuple, any, any) :: any
  def parse(ast, aliases, context)

  def parse(ast, aliases, context) when is_macro(ast) do
  end

  def parse(ast, aliases, context) do
  end

  def parse(ast, aliases, context) when is_list(ast) do
  end

  def parse(ast, aliases, context) do
  end

  @doc "Head of maybe_list_parse/3"
  @spec maybe_list_parse(any, any, any) :: any
  def maybe_list_parse(ast, aliases, context)

  def maybe_list_parse(ast, aliases, context) when is_list(ast) do
  end

  def maybe_list_parse(ast, aliases, context) do
  end

  @doc "Head of index_root/1"
  @spec index_root(any) :: any
  def index_root(parsed) do
  end

  @doc "Head of index_deep/1"
  @spec index_deep(any) :: any
  def index_deep(parsed) do
  end
end


test/umwelt/parser_test.exs
defmodule Umwelt.ParserTest do use ExUnit.Case, async: true alias Umwelt.Parser describe("index_deep / 1") do test "" do end end describe("index_root / 1") do test "" do end end describe("maybe_list_parse / 3") do test "when is_list(ast)" do end test "" do end end describe("parse / 3") do test "when is_macro(ast)" do end test "" do end test "when is_list(ast)" do end test "" do end end describe("parse_ast / 1") do test "arg #1 is tuple" do end test "arg #1 is tuple" do end test "arg #1 is tuple" do end test "arg #1 is tuple" do end end describe("parse_list / 3") do test "when is_list(ast)" do end end describe("parse_other_sources / 1") do test "" do end end describe("parse_raw / 1") do test "" do end end describe("parse_root / 1") do test "arg #1 is tuple" do end end describe("parse_root_source / 1") do test "" do end end describe("parse_source / 1") do test "" do end end describe("read_ast / 1") do test "arg #1 is tuple" do end test "arg #1 is tuple" do end test "when is_binary(code)" do end end end

defmodule Umwelt.ParserTest do
  use ExUnit.Case, async: true
  alias Umwelt.Parser

  describe("index_deep / 1") do
    test "" do
    end
  end

  describe("index_root / 1") do
    test "" do
    end
  end

  describe("maybe_list_parse / 3") do
    test "when is_list(ast)" do
    end

    test "" do
    end
  end

  describe("parse / 3") do
    test "when is_macro(ast)" do
    end

    test "" do
    end

    test "when is_list(ast)" do
    end

    test "" do
    end
  end

  describe("parse_ast / 1") do
    test "arg #1 is tuple" do
    end

    test "arg #1 is tuple" do
    end

    test "arg #1 is tuple" do
    end

    test "arg #1 is tuple" do
    end
  end

  describe("parse_list / 3") do
    test "when is_list(ast)" do
    end
  end

  describe("parse_other_sources / 1") do
    test "" do
    end
  end

  describe("parse_raw / 1") do
    test "" do
    end
  end

  describe("parse_root / 1") do
    test "arg #1 is tuple" do
    end
  end

  describe("parse_root_source / 1") do
    test "" do
    end
  end

  describe("parse_source / 1") do
    test "" do
    end
  end

  describe("read_ast / 1") do
    test "arg #1 is tuple" do
    end

    test "arg #1 is tuple" do
    end

    test "when is_binary(code)" do
    end
  end
end