# `Grammar.IR.Meta`
[🔗](https://github.com/joetjen/ichor/blob/v0.3.0/lib/grammar/ir/meta.ex#L1)

Source-location metadata carried by every `Grammar.IR` node, so an error
raised at any later stage (analysis, either backend) can still point
back at the exact line/column in the original grammar file rather than
just naming an IR node in the abstract.

# `source_span`

```elixir
@type source_span() ::
  {line :: pos_integer(), column :: pos_integer(), length :: non_neg_integer()}
```

1-based line, 1-based column, match length in the original source.

# `t`

```elixir
@type t() :: %Grammar.IR.Meta{
  source_format: atom() | nil,
  source_span: source_span() | nil
}
```

---

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