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