25 个不稳定版本
1.0.0-alpha.6 |
|
---|---|
1.0.0-alpha.4 |
|
0.13.2 | 2024年7月31日 |
0.13.0 | 2024年2月1日 |
0.4.0 | 2020年11月18日 |
#182 in 解析器实现
31,150 个月下载量
用于 12 个 crates (11 直接使用)
235KB
7K SLoC
关于
该库的主要目的是提供分析 TOML 数据的工具,其中必须保留布局并且必须知道每个解析标记的原始位置。它还可以格式化 TOML 文档。
它使用 Rowan 构建语法树,并保留所有输入中的每个字符,包括所有注释和空白。
可以构建一个 DOM,用于数据导向的分析,其中每个节点包装了语法树的一部分,并附加了额外的信息和功能。
特性
用法
必须首先使用 parse 解析 TOML 文档,它将构建一个可以遍历的语法树。
如果没有在解析过程中出现语法错误,则可以构建一个 dom::Node
。它将构建一个 DOM 树并验证 TOML 文档是否符合规范。即使在存在语法错误的情况下,也可以构建 DOM 树,但其中可能缺少部分内容。
use taplo::parser::parse;
const SOURCE: &str =
"value = 1
value = 2
[table]
string = 'some string'";
let parse_result = parse(SOURCE);
// Check for syntax errors.
// These are not carried over to DOM errors.
assert!(parse_result.errors.is_empty());
let root_node = parse_result.into_dom();
// Check for semantic errors.
// In this example "value" is a duplicate key.
assert!(root_node.validate().is_err());
依赖项
~10MB
~158K SLoC