1 个不稳定版本
0.1.0 | 2022 年 1 月 21 日 |
---|
#32 在 #ast-parser
47KB
1K SLoC
Dot 解析器 - Graphviz 文件的 AST & 解析器
安装
将以下内容添加到您的 cargo.toml 文件中
dot_parser= 0.1
示例用法
在核心上,此包暴露了一个 GraphViz
结构体,它表示描述给定 graphviz 文件的 AST 的根。作为一个使用示例,我们可以编写以下内容
use std::str::FromStr;
use graphviz_parser::DotGraph;
let graph_text = "digraph G { A -> B }";
let result = DotGraph::from_str(graph_text).unwrap();
使用 AST
一旦解析,ast 就会提供有关原始底层 graphviz 图的信息 - 例如,以下代码读取顶层行中呈现的节点 ID
use graphviz_dot_parser::DotGraph;
use graphviz_dot_parser::ast_nodes::Statement::Node;
use std::str::FromStr;
let dot_graph = DotGraph::from_str("graph G { a; b; c; }").unwrap();
let mut node_ids = vec![];
if let DotGraph::Directed(graph) = dot_graph {
for statement in graph.statements {
if let Node(n) = statement {
node_ids.push(n.id);
}
}
assert_eq!(node_ids, vec!["a", "b", "c"]);
}
提交错误报告
由于此项目仍在开发中,如果您遇到问题,请提交错误报告!请包括您尝试解析的原始 graphviz 字符串,以便我们更快地调试问题
依赖关系
~1.5MB