wgsl-parser 0.5.0

A zero-copy recursive-descent parser for WebGPU shading language
Documentation
mod chunk;
mod directive;
mod parser;
pub mod traversal;

use gramatika::{SpannedError, Substr};

pub use self::{
	chunk::Chunk,
	directive::{Directive, DirectiveKind},
	parser::{Branch, PreParsed, Section},
};

pub fn parse<S>(input: S) -> (PreParsed, Substr, Vec<SpannedError>)
where S: Into<Substr> {
	use gramatika::ParseStreamer;

	let input = input.into();
	let mut parser = parser::ParseStream::from(input);
	let parsed = parser.parse().unwrap();
	let (source, errors) = parser.into_inner();

	(parsed, source, errors)
}