#语法树 #WGSL #Spans #源码 #源文件 #解析 #规范

wgsl-parse

将 wgsl 源文件解析为语法树

1 个不稳定版本

新版本 0.0.1 2024年8月20日

#31#wgsl

Download history 154/week @ 2024-08-18

154 每月下载次数
wgsl-tools 中使用

MIT 许可证

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