4 releases
0.2.2 | Aug 25, 2024 |
---|---|
0.2.1 | Jul 20, 2024 |
0.2.0 | Jul 6, 2024 |
0.1.0 | Jul 4, 2024 |
#1372 in Parser implementations
5,837 downloads per month
Used in 4 crates
(via pretty_yaml)
84KB
2.5K
SLoC
yaml_parser
Semi-tolerant YAML concrete syntax tree parser.
Usage
match yaml_parser::parse(&code) {
Ok(tree) => println!("{tree:#?}"),
Err(err) => eprintln!("{err}"),
};
It produces rowan tree if succeeded. For consuming the tree, see rowan's docs.
If you need to build AST from CST, use ast
module:
let root = yaml_parser::ast::Root::cast(tree).unwrap();
dbg!(root);
Tests
Tests come from official test suite.
License
MIT License
Copyright (c) 2024-present Pig Fang
lib.rs
:
Semi-tolerant YAML concrete syntax tree parser.
Usage
let code = "";
match yaml_parser::parse(code) {
Ok(tree) => println!("{tree:#?}"),
Err(err) => eprintln!("{err}"),
};
It produces rowan tree if succeeded. For consuming the tree, see rowan's docs.
To build AST from CST:
use yaml_parser::{ast::{AstNode, Root}, parse};
let code = "";
let tree = parse(code).unwrap();
let ast = Root::cast(tree);
assert!(matches!(ast, Some(Root { .. })));
Dependencies
~1.5MB
~30K SLoC