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
// SPDX-License-Identifier: Apache-2.0
// Copyright 2026 ZeroDDS Contributors
//! Crate `zerodds-idl-cst`. Safety classification: **SAFE**.
//!
//! The lossless concrete syntax tree for OMG IDL 4.2: tokens that carry
//! their trivia, and a green/red tree that reproduces its input byte for
//! byte — including for files that fail to parse, because error recovery
//! inserts nodes rather than dropping input.
//!
//! This crate holds the tree. The parser that builds it is
//! `zerodds-idl-parse`; the lowering that consumes it is
//! `zerodds-idl-lower`.
//!
//! ## Spec
//!
//! - `docs/specs/zerodds-idl-frontend-1.0.md` §1 (lexing), §2 (the tree).
//! - OMG IDL 4.2 §7.2 (lexical conventions), §7.4 (grammar).
//!
//! ## Layer position
//!
//! Layer 0 of the frontend — no dependencies.
extern crate alloc;
// The unit-test harness itself needs std; the crate does not.
extern crate std;
pub use ;
pub use ;
pub use ;
pub use ;