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
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.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