ara_parser 0.6.1

A fault-tolerant, recursive-descent parser for Ara Programming Language 🌲
Documentation
# `Ara` Parser

[![Actions Status](https://github.com/ara-lang/parser/workflows/ci/badge.svg)](https://github.com/ara-lang/parser/actions)
[![Crates.io](https://img.shields.io/crates/v/ara_parser.svg)](https://crates.io/crates/ara_parser)
[![Docs](https://docs.rs/ara_parser/badge.svg)](https://docs.rs/ara_parser/latest/ara_parser/)

A fault-tolerant, recursive-descent parser for `Ara` Programming Language 🌲

> **Note:** This project is a hard-fork of [`php-rust-tools/parser`]https://github.com/php-rust-tools/parser
>
> Special thanks to the original [authors]https://github.com/php-rust-tools/parser/graphs/contributors for their work.

---

## Usage

Add `ara_parser` to your `Cargo.toml`, and you're good to go!

```toml
[dependencies]
ara_parser = "0.6.1"
```

## Example

```rust
use ara_parser::parser;
use ara_reporting::builder::Charset;
use ara_reporting::builder::ColorChoice;
use ara_reporting::builder::ReportBuilder;
use ara_reporting::error::Error;
use ara_source::loader::load_directories;

fn main() -> Result<(), Error> {

    let source_map = load_directories("/path/to/project", vec![
        "src/"
    ]).unwrap();

    match parser::parse_map(&source_map) {
        Ok(tree_map) => tree_map.trees.iter().for_each(|tree| {
            println!("{:#?}", tree.definitions);
        }),
        Err(report) => {
            ReportBuilder::new(&source_map, report)
                .with_charset(Charset::Unicode)
                .with_colors(ColorChoice::Always)
                .print()?;
        }
    }

    Ok(())
}
```

## Documentation

See the [documentation](https://ara-lang.io) for more information.

## License

Licensed under either of

 * Apache License, Version 2.0
   ([LICENSE-APACHE]LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
 * MIT license
   ([LICENSE-MIT]LICENSE-MIT or http://opensource.org/licenses/MIT)

at your option.

## Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted
for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
dual licensed as above, without any additional terms or conditions.

## Credits

* [Saif Eddin Gmati]https://github.com/azjezz
* [All contributors]https://github.com/ara-lang/parser/graphs/contributors