# `Surface.AST`
[🔗](https://github.com/surface-ui/surface/blob/v0.12.3/lib/surface/ast.ex#L599)

# `t`
[🔗](https://github.com/surface-ui/surface/blob/v0.12.3/lib/surface/ast.ex#L602)

```elixir
@type t() ::
  Surface.AST.Literal.t()
  | Surface.AST.Interpolation.t()
  | Surface.AST.Expr.t()
  | Surface.AST.Tag.t()
  | Surface.AST.VoidTag.t()
  | Surface.AST.SlotEntry.t()
  | Surface.AST.Slot.t()
  | Surface.AST.If.t()
  | Surface.AST.For.t()
  | Surface.AST.Container.t()
  | Surface.AST.Component.t()
  | Surface.AST.FunctionComponent.t()
  | Surface.AST.MacroComponent.t()
  | Surface.AST.SlotableComponent.t()
  | Surface.AST.Error.t()
```

# `find_attribute_value`
[🔗](https://github.com/surface-ui/surface/blob/v0.12.3/lib/surface/ast.ex#L619)

# `has_attribute?`
[🔗](https://github.com/surface-ui/surface/blob/v0.12.3/lib/surface/ast.ex#L626)

# `pop_attributes_as_map`
[🔗](https://github.com/surface-ui/surface/blob/v0.12.3/lib/surface/ast.ex#L645)

# `pop_attributes_values_as_map`
[🔗](https://github.com/surface-ui/surface/blob/v0.12.3/lib/surface/ast.ex#L630)

---

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