Files
dexpr/src/ast/stmt.rs
T
2026-04-05 16:08:59 +03:00

16 lines
486 B
Rust

use smol_str::SmolStr;
use super::expr::{Expr, Spanned};
#[derive(Debug, PartialEq, Clone)]
pub enum Stmt {
Assignment(SmolStr, Box<Expr>),
/// Property assignment: root variable, field path, value
/// e.g. `a.b.c = 5` → PropertyAssignment("a", ["b", "c"], 5)
PropertyAssignment(SmolStr, Vec<SmolStr>, Box<Expr>),
ExprStmt(Box<Expr>),
If(Box<Expr>, Vec<Stmt>, Option<Vec<Stmt>>),
}
/// Statement with source location
pub type SpannedStmt = Spanned<Stmt>;