vexil-lang
vexil-lang is the compiler library for the Vexil schema
language. It turns source text into diagnostics and a resolved CompiledSchema
for checking, hashing, compatibility analysis, and code generation.
Compiler boundary
source -> lexer -> parser -> source-faithful AST -> lowering -> resolved IR -> checks
The AST preserves source structure and spans. The IR resolves declarations and
imports for semantic checks and generators. CompiledSchema represents one
resolved schema; ProjectResult owns a topologically ordered multi-file result.
Compile one schema
use ;
let result = compile;
if result
.diagnostics
.iter
.any
if let Some = result.compiled
Compile a project
use PathBuf;
use ;
let root_path = from;
let loader = new;
let project = compile_project?;
Backends implement the public codegen::CodegenBackend trait for single-schema
and project output. Backends own target-specific imports, names, and file layout.
Contracts and stability
The language and wire specifications are authoritative over explanatory docs or current implementation accidents. Tier 1 compiler APIs and generated wire behavior are maintained as stable 0.x contracts; see the public API docs for the current tier annotations.
License
Licensed under either MIT or Apache-2.0, at your option.