Skip to main content

vize_l4/
lib.rs

1//! L4 — emission (codename: Stesura).
2//!
3//! **Experimental (#6840).** The module layout follows the
4//! [#6840 design](https://github.com/ubugeeei-prod/vize/issues/6840#issuecomment-5847908963).
5//! The writer, prepared-fragment module assembler and checked supported-expression
6//! consumer are implemented. Full binding/grammar and targets
7//! remain unfinished; no product selects a complete native route.
8//!
9//! L4 writes output text directly. There is no JS AST plus codegen step:
10//!
11//! - [`write`](mod@write) — the one append-only [`write::Writer`] every target uses:
12//!   indentation, the used-helper set, and span links that cost nothing when
13//!   the writer does not record. Preambles are assembled last, so nothing is
14//!   inserted into the middle of the text.
15//! - [`expr`] — expression rewriting by span from the L2 identifier-resolution
16//!   table. Expressions are parsed once, in L1; L4 never reparses them.
17//! - [`runtime`] — helper vocabulary for pinned DOM, SSR and Vapor releases.
18//! - [`module`] — SFC module assembly (imports, hoists, script, render,
19//!   exports) into one writer, so one source map covers the whole module.
20//! - [`targets`] — the DOM, SSR and Vapor emitters and the type-check
21//!   projection.
22//!
23//! Dependencies are level crates (L0, L2, L3) plus `serde_json` for Source Map
24//! v3 serialization. The production compiler keeps its own emission document
25//! until its fix-history gate closes (#6880).
26
27#![cfg_attr(not(test), no_std)]
28
29extern crate alloc;
30
31pub mod expr;
32pub mod jsx;
33pub mod module;
34pub mod runtime;
35pub mod targets;
36pub mod write;