#![doc = include_str!("readme.md")]
#![allow(incomplete_features)]
#![allow(internal_features)] #![feature(allocator_api)] #![feature(core_intrinsics)] #![feature(lazy_type_alias)] #![feature(new_range_api)] #![feature(portable_simd)] #![feature(slice_ptr_get)] #![feature(trusted_len)] #![warn(missing_docs)]
#![doc(html_logo_url = "https://raw.githubusercontent.com/ygg-lang/oaks/refs/heads/dev/documents/logo.svg")]
#![doc(html_favicon_url = "https://raw.githubusercontent.com/ygg-lang/oaks/refs/heads/dev/documents/logo.svg")]
pub mod builder;
pub mod errors;
pub mod language;
pub mod lexer;
pub mod memory;
pub mod parser;
#[cfg(feature = "serde")]
pub mod serde_arc_str;
#[cfg(feature = "serde")]
pub mod serde_range;
pub mod source;
pub mod tree;
pub mod visitor;
pub mod ast;
pub mod helpers;
pub use core::range::Range;
pub use crate::{
ast::{AstError, AstProcessor, DefaultAstProcessor, RedTreeExt, VisitResult, Visitor},
builder::{Builder, BuilderCache},
errors::{OakDiagnostics, OakError, OakErrorKind},
language::{ElementRole, ElementType, Language, LanguageCategory, TokenRole, TokenType, UniversalElementRole, UniversalTokenRole},
lexer::{LexOutput, Lexer, LexerCache, LexerState, NoLexerCache, Token, TokenStream, Tokens},
memory::arena::SyntaxArena,
parser::{Associativity, CachingParseSession, ContentCache, OperatorInfo, ParseCache, ParseOutput, ParseSession, Parser, ParserState, Pratt, PrattParser, binary, parse, parse_one_pass, postfix, state::TreeSink, unary},
source::{Source, SourceText, TextEdit},
tree::{GreenNode, GreenTree, RedLeaf, RedNode, RedTree},
};
pub use triomphe::Arc;