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
//! Core IR data model.
//!
//! This module defines the pure Rust data structures that make up a vyre
//! program: expressions (`Expr`), statements (`Node`), buffer declarations
//! (`BufferDecl`), and the root `Program` container. These types are
//! serializable, validateable, and backend-agnostic.
/// Expression nodes that produce values.
///
/// `Expr` covers literals, variable references, arithmetic, comparisons,
/// buffer loads, and operation calls. Every expression has a statically
/// known type.
/// Opt-in bump arena for high-volume expression builders.
/// Statement nodes that execute effects.
///
/// `Node` covers variable declarations, assignments, control flow
/// (if/else, loops), and buffer stores. A `Program` is essentially a
/// sequence of nodes.
/// Open node kind trait and built-in node structs.
/// Program structure and metadata.
///
/// `Program` is the top-level IR container. It holds buffer declarations,
/// the entry node list, and optional optimization hints.
/// Core type definitions.
///
/// Re-exports frozen types from `vyre-spec`.