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
// SPDX-License-Identifier: Apache-2.0
// Copyright 2026 ZeroDDS Contributors
//! Crate `zerodds-idl-parse`. Safety classification: **STANDARD**.
//!
//! Not **SAFE**, and that is the specification's own line:
//! `docs/architecture/04_safety_by_architecture.md` §2 lists the safe
//! subset and says the `zerodds-idl*` tools do not belong to the
//! no_std safety profile. The parser runs at code-generation time; the
//! SAFE marker it used to carry was applied across the board and made
//! `dds_no_panic_in_safe` demand a contract this crate never signed.
//!
//! A hand-written recursive-descent parser for OMG IDL 4.2 that builds
//! the lossless CST in `zerodds-idl-cst`.
//!
//! It never stops at the first error. A syntax error is diagnosed, the
//! offending range becomes an error node, and parsing resynchronises at
//! the next declaration boundary — so a file with three mistakes reports
//! three rather than costing three runs.
//!
//! ## Spec
//!
//! - `docs/specs/zerodds-idl-frontend-1.0.md` §3 (parsing), §7
//! (diagnostics).
//! - OMG IDL 4.2 §7.4 (grammar).
//!
//! ## Layer position
//!
//! Layer 1 of the frontend — over `zerodds-idl-cst`.
extern crate alloc;
extern crate std;
pub use ;
pub use ;
pub use ;
pub use ;