syncat_stylesheet/parser.rs
1use std::cell::RefCell;
2use tree_sitter::{Parser, Tree};
3
4thread_local! {
5 static PARSER: RefCell<Parser> = RefCell::new({
6 let mut parser = Parser::new();
7 parser.set_language(&unsafe { crate::tree_sitter_syncat_stylesheet() }).unwrap();
8 parser
9 });
10}
11
12pub(crate) fn parse(source: impl AsRef<[u8]>) -> Option<Tree> {
13 PARSER.with(|parser| parser.borrow_mut().parse(source, None))
14}