# `OpenUILang.ZigNIF`
[🔗](https://github.com/boxxxie/openui_lang/blob/v1.0.0/lib/openui_lang/zig_nif.ex#L1)

Native Zig NIF bindings for OpenUI Lang 1.0 lexing, preprocessing,
auto-closing, Pratt expression parsing, TUI symbol extraction, and statement merging.

# `auto_close`

```elixir
@spec auto_close(String.t()) :: %{text: String.t(), was_incomplete: boolean()}
```

# `demux`

```elixir
@spec demux(String.t()) :: %{prose: String.t(), code: String.t()}
```

# `parse_and_materialize`

```elixir
@spec parse_and_materialize(String.t(), non_neg_integer(), binary(), String.t()) ::
  map()
```

# `parse_merge_statements`

```elixir
@spec parse_merge_statements(String.t(), non_neg_integer()) :: [
  {String.t(), String.t(), boolean(), boolean(), [String.t()]}
]
```

# `parse_pending`

```elixir
@spec parse_pending(String.t(), non_neg_integer()) :: {boolean(), [map()]}
```

# `parse_source`

```elixir
@spec parse_source(String.t(), non_neg_integer()) :: :empty | {boolean(), [map()]}
```

# `parse_statements`

```elixir
@spec parse_statements(String.t(), non_neg_integer()) :: [map()]
```

# `parse_symbols`

```elixir
@spec parse_symbols(String.t()) :: %{optional(String.t()) =&gt; term()}
```

# `preprocess`

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

# `register_schema`

```elixir
@spec register_schema(non_neg_integer(), binary()) :: :ok
```

# `stream_get`

```elixir
@spec stream_get(reference(), non_neg_integer(), map()) :: {map(), map()}
```

# `stream_new`

```elixir
@spec stream_new(non_neg_integer(), binary(), String.t()) :: reference()
```

# `stream_push`

```elixir
@spec stream_push(reference(), String.t(), non_neg_integer(), map()) :: {map(), map()}
```

# `stream_reset`

```elixir
@spec stream_reset(reference()) :: :ok
```

# `stream_set`

```elixir
@spec stream_set(reference(), String.t(), non_neg_integer(), map()) :: {map(), map()}
```

# `strip_comments`

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

# `tokenize`

```elixir
@spec tokenize(String.t()) :: [OpenUILang.Lexer.token()]
```

---

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