README.md

# parz

A simple parser combinator library

> Trying to learn [Gleam]() while also Learning about Parser Combinators using
> [The YouTube Series by Low Byte Productions](https://www.youtube.com/playlist?list=PLP29wDx6QmW5yfO1LAgO8kU3aQEj8SIrU)
> and [Understanding Parser Combinators](https://fsharpforfunandprofit.com/posts/understanding-parser-combinators/)

[![Package Version](https://img.shields.io/hexpm/v/parz)](https://hex.pm/packages/parz)
[![Hex Docs](https://img.shields.io/badge/hex-docs-ffaff3)](https://hexdocs.pm/parz/)

The project exposes the following modules:

1. `parz.` - contains the `run` method which is used for executing a parser
2. `parz/combinators` - the parser combinator library
3. `pars/parsers` - some simple, prmiitive parsers

## Usage

```sh
gleam add parz
```

```gleam
import parz.{run}
import pars/combinators
import pars/parsers

pub fn main() {
  // For an example usage look at the `tests/sample_parser_test.gleam` file
  let parser = // .. define a parser

  let result = run(parser, content_to_parse)
}
```

Further documentation can be found at <https://hexdocs.pm/parz>.

## Development

```sh
gleam run   # Run the project
gleam test  # Run the tests
gleam shell # Run an Erlang shell
```