62 个版本
0.5.11 | 2024 年 6 月 19 日 |
---|---|
0.5.9 | 2024 年 3 月 27 日 |
0.5.2 | 2023 年 12 月 26 日 |
0.4.4 | 2023 年 11 月 17 日 |
0.1.5 | 2022 年 3 月 20 日 |
170 在 编程语言 中排名
每月 151 次下载
在 3 crate 中使用
340KB
6K SLoC
NetsBlox-AST
目前,这个crate处于积极开发中,其API非常不稳定
NetsBlox 是一种基于块的编程语言(由 Snap! 扩展而来),它提供了访问高级Web和分布式计算能力,例如访问Web API和在客户端之间发送消息(例如创建多用户程序)。NetsBlox-AST是一个Rust crate,它接受一个NetsBlox项目XML文件作为输入,并输出一个经过清理的抽象语法树,这对于代码生成非常有用。
开发
这个crate旨在直接在一些嵌入式平台上使用。因此,由于解析器是递归的,我们需要将堆栈大小保持在绝对最小。为此,我们使用 cargo-call-stack
来检查调用堆栈使用情况。
目前,您应从 此分支 安装。
您还需要 dot
来自 graphviz
。
sudo apt install graphviz
要生成调用图,请运行以下命令
RUSTFLAGS="-C embed-bitcode" cargo +nightly call-stack --bin netsblox_ast --target x86_64-unknown-linux-gnu >cg.dot
gawk 'match($0, /label="(.*)\\nmax >?= ([0-9]+)\\nlocal = ([0-9]+)"/, m) { print m[3] " " m[1] }' cg.dot | sort -n
可选地,您可以生成一个可视图,但这可能非常混乱
dot -Tsvg cg.dot >cg.svg
依赖项
~790KB
~14K SLoC