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_arc_str;
29pub mod serde_range;
30pub mod source;
32pub mod tree;
34pub mod visitor;
36
37pub mod helpers;
39
40pub use core::range::Range;
41
42pub use crate::{
43 builder::{Builder, BuilderCache},
44 errors::{OakDiagnostics, OakError, OakErrorKind},
45 language::{ElementRole, ElementType, Language, LanguageCategory, TokenRole, TokenType, UniversalElementRole, UniversalTokenRole},
46 lexer::{LexOutput, Lexer, LexerCache, LexerState, Token, TokenStream, Tokens},
47 memory::arena::SyntaxArena,
48 parser::{Associativity, OperatorInfo, ParseCache, ParseOutput, ParseSession, Parser, ParserState, Pratt, PrattParser, binary, parse, parse_one_pass, postfix, state::TreeSink, unary},
49 source::{Source, SourceText, TextEdit},
50 tree::{GreenNode, GreenTree, RedLeaf, RedNode, RedTree},
51};
52
53pub use triomphe::Arc;