# `YAML.Parser`
[🔗](https://github.com/sruplex/yaml/blob/main/lib/yaml/parser.ex#L1)

Parses YAML strings into AST or simplified Elixir data structures.

# `parse`

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}
      }
    }
  ]

# `parse!`

# `simplify`

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"}]

---

*Consult [api-reference.md](api-reference.md) for complete listing*
