15 releases (5 breaking)
0.6.6 | Feb 5, 2023 |
---|---|
0.6.5 | Feb 4, 2023 |
0.6.4 | Jan 31, 2023 |
0.5.3 | Jan 10, 2023 |
0.1.0 | Dec 31, 2022 |
#187 in Programming languages
495KB
13K
SLoC
Ara
Parser
A fault-tolerant, recursive-descent parser for Ara
Programming Language 🌲
Note: This project is a hard-fork of
php-rust-tools/parser
Special thanks to the original authors for their work.
Usage
Add ara_parser
to your Cargo.toml
, and you're good to go!
[dependencies]
ara_parser = "0.6.6"
Example
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)
.with_charset(CharSet::Unicode)
.with_colors(ColorChoice::Always)
.print(report.as_ref())?;
}
}
Ok(())
}
Documentation
See the documentation for more information.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (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
Dependencies
~1.5–10MB
~87K SLoC