1 个不稳定版本
新版本 0.0.1 | 2024年8月20日 |
---|
#31 在 #wgsl
154 每月下载次数
在 wgsl-tools 中使用
67KB
1.5K SLoC
一个用于解析 WGSL 文件的解析器,直接根据 规范 使用 lalrpop 编写。
解析
let source = "@fragment fn frag_main() -> @location(0) vec4f { return vec4(1); }";
let module = parser::parse(source);
println!("{module:?}");
语法树
该 语法树 设计中使用了 Span
。这些 spans 允许在不进行生命周期绑定的情况下引用源 &str
。将来,Span
的不同变体将允许修改源代码,同时保留正确的语法树 spans。(待定)
解析变体
识别
解析有两种形式:识别 和 带 spans 的。识别 版本简单地确保输入文件没有语法错误。而 带 spans 的 版本返回完整的 语法树。
字符串化
待文档化(待定)
依赖关系
~4.5–6.5MB
~79K SLoC