zerodds_lang_cst/lib.rs
1// SPDX-License-Identifier: Apache-2.0
2// Copyright 2026 ZeroDDS Contributors
3//! Crate `zerodds-lang-cst`. Safety classification: **SAFE**.
4//!
5//! Concrete syntax trees for the seventeen target languages. Built,
6//! never parsed.
7//!
8//! Each language gets the tree its own syntax needs. There is no shared
9//! target model: with one, the language-specific part does not
10//! disappear, it moves into the renderer, which is where it stops being
11//! reviewable.
12//!
13//! ## Spec
14//!
15//! - `docs/specs/zerodds-lang-cst-1.0.md` §1.
16//!
17//! ## Layer position
18//!
19//! Layer 0 of the backend arc. Depends on nothing — not even on the
20//! common AST, so that a tree can be built and rendered without a model
21//! and a renderer cannot reach back into one.
22#![no_std]
23#![forbid(unsafe_code)]
24
25extern crate alloc;
26
27#[cfg(test)]
28extern crate std;
29
30pub mod ada;
31pub mod ada83;
32pub mod c;
33pub mod common;
34pub mod cpp;
35pub mod csharp;
36pub mod d;
37pub mod elixir;
38pub mod fsharp;
39pub mod go;
40pub mod java;
41pub mod julia;
42pub mod kotlin;
43pub mod lua;
44pub mod nim;
45pub mod node;
46pub mod ocaml;
47pub mod python;
48pub mod rust;
49pub mod swift;
50pub mod typescript;
51pub mod zig;
52
53pub use common::{Doc, Ident, Language, Literal, Path, Visibility};