3个不稳定版本

0.2.1 2024年7月20日
0.2.0 2024年7月6日
0.1.0 2024年7月4日

#1450解析器实现

Download history 91/week @ 2024-06-28 189/week @ 2024-07-05 9/week @ 2024-07-12 153/week @ 2024-07-19 276/week @ 2024-07-26 549/week @ 2024-08-02 554/week @ 2024-08-09

1,533 每月下载量
pretty_yaml 中使用

MIT 许可证

84KB
2.5K SLoC

yaml_parser

Crates.io docs.rs

半容忍YAML具体语法树解析器。

用法

match yaml_parser::parse(&code) {
    Ok(tree) => println!("{tree:#?}"),
    Err(err) => eprintln!("{err}"),
};

如果成功,则生成rowan树。对于消费树,请参阅rowan的文档

如果您需要从CST构建AST,请使用ast模块

let root = yaml_parser::ast::Root::cast(tree).unwrap();
dbg!(root);

测试

测试来自官方测试套件

许可证

MIT许可证

版权 (c) 2024-present Pig Fang


lib.rs:

半容忍YAML具体语法树解析器。

用法

let code = "";
match yaml_parser::parse(code) {
    Ok(tree) => println!("{tree:#?}"),
    Err(err) => eprintln!("{err}"),
};

如果成功,则生成rowan树。对于消费树,请参阅rowan的文档

从CST构建AST

use yaml_parser::{ast::{AstNode, Root}, parse};

let code = "";
let tree = parse(code).unwrap();
let ast = Root::cast(tree);
assert!(matches!(ast, Some(Root { .. })));

依赖

~1.5MB
~28K SLoC