#![doc = include_str!("../README.md")]
use proc_macro2::TokenStream;
use syn::parse_quote;
pub use crate::error::*;
pub use crate::node_types::*;
pub(crate) use crate::print_ctx::*;
pub use crate::queries::*;
pub use anon_unions::*;
mod anon_unions;
mod error;
mod mk_syntax;
mod node_types;
mod print_ctx;
mod queries;
mod vec_set;
pub fn type_sitter() -> syn::Path {
parse_quote!(::type_sitter)
}
pub fn type_sitter_raw() -> syn::Path {
parse_quote!(::type_sitter::raw)
}
pub fn type_sitter_lib() -> syn::Path {
parse_quote!(::type_sitter_lib)
}
pub fn tree_sitter() -> syn::Path {
parse_quote!(::tree_sitter)
}
pub fn yak_sitter() -> syn::Path {
parse_quote!(::yak_sitter)
}
pub fn super_nodes() -> syn::Path {
parse_quote!(super::nodes)
}
fn pretty_print(tokens: &TokenStream) -> String {
let str = tokens.to_string();
syn::parse_file(&str)
.map(|f| prettyplease::unparse(&f))
.unwrap_or_else(|err| {
eprintln!("Failed to pretty print tokens: {}", err);
str
})
}