# `ExAST.Index.Terms`
[🔗](https://github.com/elixir-vibe/ex_ast/blob/v0.11.0/lib/ex_ast/index/terms.ex#L1)

Conservative structural terms extracted from Elixir AST and ExAST patterns.

These terms are intended for candidate retrieval. They are not a substitute
for ExAST verification.

# `mode`

```elixir
@type mode() :: :source | :pattern
```

# `signal`

```elixir
@type signal() :: :high | :normal | :low
```

# `from_ast`

```elixir
@spec from_ast(Macro.t()) :: MapSet.t(String.t())
```

# `from_pattern`

```elixir
@spec from_pattern(ExAST.Pattern.pattern() | [ExAST.Pattern.pattern()]) ::
  MapSet.t(String.t())
```

# `from_source`

```elixir
@spec from_source(String.t()) :: MapSet.t(String.t())
```

# `high_signal?`

```elixir
@spec high_signal?(String.t()) :: boolean()
```

# `low_signal?`

```elixir
@spec low_signal?(String.t()) :: boolean()
```

# `signal`

```elixir
@spec signal(String.t()) :: signal()
```

---

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