wgsl-parser 0.5.0

A zero-copy recursive-descent parser for WebGPU shading language
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
use gramatika::{arcstr::literal_substr, ParseStreamer};

use crate::{scopes, ParseStream, SyntaxTree, Token};

const PROGRAM: &str = include_str!("../../test-files/shader.wgsl");

#[test]
fn scopes() {
	let tree = ParseStream::from(PROGRAM).parse::<SyntaxTree>().unwrap();
	let root = scopes::build(&tree);

	let test_token = Token::Ident(literal_substr!("ambient_strength"), span![78:36..78:52]);
	if let Some(found) = root.find_decl(&test_token, false) {
		eprintln!("{:#?}", found.as_ref());
	} else {
		panic!();
	}
}