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
//! A Rust library for parsing `ferron.conf` configuration files.
//!
//! `ferron.conf` is a domain-specific language for Ferron web server configurations.
//! This crate provides a reference implementation including a lexer, parser, and AST.
//!
//! # Features
//!
//! - **Lexer** — Tokenizes configuration files with support for comments, strings,
//! numbers, booleans, and interpolation
//! - **Parser** — Builds an AST from tokens with full error reporting
//! - **AST** — Type-safe representation of configuration structures with helper methods
//!
//! # Quick Start
//!
//! ```rust
//! use ferronconf::Config;
//! use std::str::FromStr;
//!
//! let input = r#"
//! example.com {
//! root /var/www/example
//! tls true
//! }
//!
//! *.example.com:443 {
//! proxy http://backend
//! }
//! "#;
//!
//! let config = Config::from_str(input).unwrap();
//!
//! // Find all host blocks
//! for host_block in config.find_host_blocks() {
//! for host in &host_block.hosts {
//! println!("Host: {}", host.as_str());
//! }
//! }
//! ```
//!
//! # See Also
//!
//! - [`Config`] — The root AST node
//! - [`Span`] — Source location for error reporting
//! - [`ParseError`] — Error type for parse failures
pub use *;
pub use *;
pub use *;