-
Notifications
You must be signed in to change notification settings - Fork 11
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
tidy vs graphviz #2
Comments
zxch3n,你好,最近我需要构造一些语法树,我希望可以找到一个好用的可视化工具,图形化输出语法树以便观察,然后我通过搜索定位到了这里。 |
@krishna116 Hi, 这个库之后会被发布到 Crates.io,但我发现你的项目是 C++ 的,我对 C++ 调用 Rust 的操作没有什么经验,不清楚在 lib 这里需要什么处理才会比较方便被集成。如果我提供一个 CLI 能满足你的需求吗? |
图形化的工具,互相合作不一定需要懂双方的语言,通过中立的图形格式类似于Graph Modeling Language (GML)又或者GraphML(http://graphml.graphdrawing.org/)交换信息即可。只是我研究和尝试了一下GML和GraphML,它们适合描述graph,但不适合描述tree,特别不适合描述syntax/grammar tree,因为它们不能描述兄弟结点之间的偏序关系,这导致例如两个兄弟结点a和b,如果不明确分配坐标,则有时候a在b的左边,有时候a在b的右边。 关于tree的描述方法,我设想了两种方案。
第二种方案是利用现成的json格式,嵌套表达,不必手动解析,因为存在很多json library可以调用。
如果能提供一个CLI是可以的,例如用户也不需要懂C++也能使用我的bitreeviz,因为我也提供了可执行的cli,你可以下载尝试(我有提供编译成品)。如果你设计CLI,不知道你会设定什么样的功能,会不会负责渲染,但希望至少可以导出每个结点的坐标,假如我给出上面任选一种方案的描述,你可以输出结点坐标,举例:
谢谢。 |
又或者CLI如果能够输出这种GML(Graph Modeling Language)格式的文本文件:
|
了解了。感谢 |
No description provided.
The text was updated successfully, but these errors were encountered: