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
//! vimlrs — a faithful Rust port of the Vimscript (VimL) interpreter, compiled
//! to [`fusevm`] bytecode and run on its VM + Cranelift JIT.
//!
//! VimL is the **4th language frontend** on fusevm, after zshrs (zsh),
//! strykelang (stryke), and awkrs (awk). Like zshrs, it has **no local VM and
//! no local JIT**: source is lexed and parsed into an AST, lowered to fusevm
//! bytecode, and executed by fusevm.
//!
//! ## Two-zone layout (the zshrs porting discipline)
//!
//! - [`ported`] — strict 1:1 ports of the Neovim eval C source under `vendor/`.
//! Exact C names, `// c:NNN` citations, no invented helpers/structs. See
//! `docs/PORT.md`.
//! - **Crate-root carve-outs** — net-new synthesis with no C counterpart
//! (Neovim's eval is a string-walking interpreter with no AST/bytecode):
//! [`viml_lexer`], [`viml_ast`], [`viml_parser`], [`compile_viml`],
//! [`fusevm_bridge`]. These mirror zshrs's `compile_zsh.rs`/`fusevm_bridge.rs`
//! carve-outs and are clearly headed "EXTENSION — NO vendor/ counterpart".
// The `ported` zone keeps Vim's exact C identifiers (e.g. `ufunc_T`,
// `except_type_T`, `VAR_FLAVOUR_*`) for 1:1 fidelity, so the non-camel-case
// lint is intentionally disabled crate-wide.
// Synthesis carve-outs (no `vendor/` counterpart).
pub use ;
pub use typval_T;