Crate wgsl_parse
source ·Expand description
A parser for WGSL files, written directly from the specification with lalrpop.
§Parsing
let source = "@fragment fn frag_main() -> @location(0) vec4f { return vec4(1); }";
let module = parser::parse(source);
println!("{module:?}");§Syntax tree
The syntax tree was designed with Spans a bit everywhere. These spans
allow referring to the source &str without a lifetime bind.
In the future, different variants of the Span will allow modifying the
Source code while preserving correct syntax tree spans. (TODO)
§Parsing variants
§recognize
Parsing exists in two flavors: recognize and spanned. The recognize version simply ensures that the input file has no syntax errors. The spanned version returns a full syntax tree.
§Stringify
To be documented (TODO)
Re-exports§
Modules§
- A spanned error is the error type returned by
Parser::parse*functions. - Prefer using
Parser::parse_str. You shouldn’t need to manipulate the lexer. - A syntax tree for WGSL files. The root of the tree is a TranslationUnit (file).