1#![doc = include_str!("readme.md")]
2#![allow(incomplete_features)]
3#![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)]
12#![doc(html_logo_url = "https://raw.githubusercontent.com/ygg-lang/oaks/refs/heads/dev/documents/logo.svg")]
13#![doc(html_favicon_url = "https://raw.githubusercontent.com/ygg-lang/oaks/refs/heads/dev/documents/logo.svg")]
14pub mod builder;
18pub mod errors;
20pub mod language;
22pub mod lexer;
24pub mod memory;
26pub mod parser;
28#[cfg(feature = "serde")]
29pub mod serde_arc_str;
30#[cfg(feature = "serde")]
31pub mod serde_range;
32pub mod source;
34pub mod tree;
36pub mod visitor;
38
39pub mod helpers;
41
42pub use core::range::Range;
43
44pub use crate::{
45 builder::{Builder, BuilderCache},
46 errors::{OakDiagnostics, OakError, OakErrorKind},
47 language::{ElementRole, ElementType, Language, LanguageCategory, TokenRole, TokenType, UniversalElementRole, UniversalTokenRole},
48 lexer::{LexOutput, Lexer, LexerCache, LexerState, NoLexerCache, Token, TokenStream, Tokens},
49 memory::arena::SyntaxArena,
50 parser::{Associativity, OperatorInfo, ParseCache, ParseOutput, ParseSession, Parser, ParserState, Pratt, PrattParser, binary, parse, parse_one_pass, postfix, state::TreeSink, unary},
51 source::{Source, SourceText, TextEdit},
52 tree::{GreenNode, GreenTree, RedLeaf, RedNode, RedTree},
53};
54
55pub use triomphe::Arc;