tzcompile/source/mod.rs
1//! Source front-end: turning tzdata text into a typed [`Database`](crate::model::Database).
2//!
3//! Pipeline within this module:
4//!
5//! ```text
6//! bytes --lexer::tokenize--> Vec<Line> --parser::parse_into--> Database
7//! ```
8//!
9//! * [`lexer`] handles field splitting, comments, quoting, and input-hardening limits.
10//! * [`names`] resolves month/weekday/keyword abbreviations the way `zic` does.
11//! * [`records`] holds the lexical [`Line`](records::Line)/[`Field`](records::Field) types.
12//! * [`parser`] builds the typed `Rule`/`Zone`/`Link` records.
13
14pub mod leap;
15pub mod lexer;
16pub mod names;
17pub mod parser;
18pub mod records;
19
20pub use leap::parse_leap_source;
21pub use parser::parse_into;