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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
//! Lambdust内製パーサーコンビネータシステム
//!
//! Scheme言語処理に最適化された高性能パーサーコンビネータライブラリ。
//! nomパーサーコンビネータと互換性を保ちながら、S式処理とゼロコピー解析を最適化。
//!
//! # アーキテクチャ概要
//!
//! ```text
//! Core Layer (primitive.rs)
//! ├── 基本パーサープリミティブ
//! ├── ゼロコピー文字列操作
//! ├── エラーハンドリング
//! └── Span情報管理
//!
//! Combinator Layer (combinator.rs)
//! ├── 基本コンビネータ
//! ├── シーケンス操作
//! ├── 選択・分岐
//! └── 繰り返し処理
//!
//! Scheme-Specific Layer (scheme.rs)
//! ├── S式パーサー
//! ├── リスト処理
//! ├── アトム解析
//! └── 特殊構文
//!
//! Integration Layer (nom_compat.rs)
//! ├── nom API互換
//! ├── 移行支援
//! ├── 型変換
//! └── エラー変換
//! ```
//!
//! # 設計原則
//!
//! 1. **ゼロコピー最適化**: 文字列をコピーせずに参照ベースで処理
//! 2. **Scheme特化**: S式、リスト、アトムに最適化されたパーサー
//! 3. **詳細エラー情報**: span情報付きのリッチなエラーレポート
//! 4. **段階的移行**: nom互換APIで既存コードを段階的に移行
//! 5. **高性能**: コンパイル時最適化とSIMD活用
//!
//! # 使用例
//!
//! ```rust
//! use lambdust::parser::combinators::*;
//!
//! // 基本的なパーサーコンビネータ
//! let parser = tag("define")
//! .and(whitespace1())
//! .and(identifier())
//! .and(expression());
//!
//! // Scheme特化パーサー
//! let scheme_parser = s_expression()
//! .or(atom())
//! .or(list());
//! ```
/// 基本パーサープリミティブ - ゼロコピー操作とコアロジック
/// パーサーコンビネータ - 基本的な組み合わせ操作
/// Scheme特化パーサー - S式、リスト、アトム処理
// nom互換レイヤー - 廃止済み (2025年8月12日)
// pub mod nom_compat;
/// 高レベルパーサービルダー - 使いやすいAPI
// Feature flag 切り替えシステム - 廃止済み (2025年8月12日)
// pub mod feature_parser;
// パフォーマンス最適化 - SIMD、並列化、キャッシュ (WIP - コンパイルエラー修正中)
// pub mod optimization;
// Test module temporarily disabled due to JIT system errors
// #[cfg(test)]
// mod tests;
// モジュールのre-export
pub use *;
pub use *;
pub use *;
// pub use nom_compat::*; // 廃止済み
pub use *;
// pub use feature_parser::*; // 廃止済み
/// パーサーコンビネータで使用する基本型定義
// 基本型のre-export
pub use *;