# `PtcRunner.Lisp.Parser`
[🔗](https://github.com/andreasronge/ptc_runner/blob/main/lib/ptc_runner/lisp/parser.ex#L1)

Parser entry point for PTC-Lisp.

Delegates to the internal fast parser for the actual parse, adding pre-flight
checks for unsupported syntax and helpful delimiter-balance and
unsupported-pattern error messages.

Transforms source code into AST nodes.

# `parse`

```elixir
@spec parse(String.t()) ::
  {:ok, PtcRunner.Lisp.AST.t()} | {:error, {:parse_error, String.t()}}
```

Parse PTC-Lisp source code into AST.

Returns `{:ok, ast}` or `{:error, {:parse_error, message}}`.

---

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