Parses YAML strings into AST or simplified Elixir data structures.
Summary
Functions
Parses YAML string into AST (Abstract Syntax Tree) with full metadata.
Returns a list of YAML.AST.Document structs since YAML files can contain
multiple documents.
Simplifies AST into plain Elixir data structures (maps, lists).
Functions
Parses YAML string into AST (Abstract Syntax Tree) with full metadata.
Returns a list of YAML.AST.Document structs since YAML files can contain
multiple documents.
Examples
iex> YAML.Parser.parse!("key: value") [
%YAML.AST.Document{
root: %YAML.AST.Mapping{
pairs: [
{%YAML.AST.Scalar{value: "key", meta: %YAML.AST.Meta{tag: "tag:yaml.org,2002:str", line: 1, column: 1}},
%YAML.AST.Scalar{value: "value", meta: %YAML.AST.Meta{tag: "tag:yaml.org,2002:str", line: 1,column: 6}}}
],
meta: %YAML.AST.Meta{tag: "tag:yaml.org,2002:map", line: 1, column: 1}
}
}]
Simplifies AST into plain Elixir data structures (maps, lists).
Examples
iex> ast = [
%YAML.AST.Document{
root: %YAML.AST.Mapping{
pairs: [
{%YAML.AST.Scalar{value: "key", meta: %YAML.AST.Meta{tag: "tag:yaml.org,2002:str", line: 1, column: 1}},
%YAML.AST.Scalar{value: "value", meta: %YAML.AST.Meta{tag: "tag:yaml.org,2002:str", line: 1,column: 6}}}
],
meta: %YAML.AST.Meta{tag: "tag:yaml.org,2002:map", line: 1, column: 1}
}
}
]iex>YAML.Parser.simplify(ast, atomize_keys) [%{"key" => "value"}]