1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Copyright Two Neutron Stars Incorporated and contributors
// SPDX-License-Identifier: BlueOak-1.0.0
//! Generic lexer infrastructure for chumsky-based parsers.
//!
//! This module provides reusable components for building lexers:
//!
//! - [`Trivia`] - Whitespace and formatting representation
//! - [`define_tokens!`] - Macro to generate token enums and lexers
//! - [`wrap!`] - Macro to wrap token parsers with trivia handling
//!
//! # Example
//!
//! ```ignore
//! use laburnum::chumsky::lexer::{define_tokens, Trivia};
//!
//! // Define your Token enum that wraps generated types
//! pub enum Token {
//! Keyword(Option<Trivia>, laburnum::Spanned<Keyword>, Option<Trivia>),
//! // ...
//! }
//!
//! // Generate the Keyword enum and lexer
//! define_tokens! {
//! #[keyword]
//! Token::Keyword(Keyword -> [
//! "fn" => Fn,
//! "let" => Let,
//! "if" => If,
//! ])
//! }
//! ```
pub use define_tokens;
pub use ;