#![doc = include_str!("../README.md")]
#![cfg_attr(not(feature = "std"), no_std)]
#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(docsrs, allow(unused_attributes))]
#![allow(clippy::double_parens)]
#![deny(missing_docs, warnings)]
#[cfg(all(not(feature = "std"), feature = "alloc"))]
extern crate alloc as std;
#[cfg(feature = "std")]
extern crate std;
#[cfg(feature = "logos")]
#[cfg_attr(docsrs, doc(cfg(feature = "logos")))]
pub use logos;
pub use check::Check;
pub use emitter::Emitter;
pub use lexer::{Cache, Lexed, Lexer, Source, State, Token};
pub use parser::{Parse, ParseChoice, ParseContext, ParseInput, Parser, Window};
pub use require::Require;
#[cfg(feature = "rowan")]
#[cfg_attr(docsrs, doc(cfg(feature = "rowan")))]
pub mod cst;
pub mod lexer;
pub mod parser;
pub mod types;
pub mod syntax;
pub mod utils;
pub mod container;
pub mod emitter;
pub mod error;
pub mod punct;
mod check;
mod keyword;
mod require;
#[doc(hidden)]
pub mod __private {
pub use super::{check::Check, error, lexer::*, require::Require, syntax, utils};
#[cfg(feature = "logos")]
pub use logos;
pub use paste;
#[cfg(any(feature = "std", feature = "alloc"))]
pub use std::{boxed::Box, string::String, vec::Vec};
}