active-core 1.1.0

Core implementation of the Active configuration and data language: lexer, parser, IR, dependency graph, evaluator, type system and diagnostics
Documentation
//! Concrete Syntax Tree (placeholder for future expansion)
//! The dual-syntax round-trip (C-022) is implemented without a CST: the IR
//! carries source spans for every node plus comment trivia with normative
//! attachments, which is enough to re-emit either canonical style. The
//! parser builds the IR directly.
//! The alpha parser currently builds the IR directly.

#![allow(dead_code)]

#[derive(Debug, Clone)]
pub struct Document {
    pub statements: Vec<Statement>,
}

#[derive(Debug, Clone)]
pub enum Statement {
    Let { name: String, expr: Expr },
    Table { name: String, body: Vec<Statement> },
    KeyValue { key: String, value: Expr },
}

#[derive(Debug, Clone)]
pub enum Expr {
    Null,
    Bool(bool),
    Int(i64),
    String(String),
    Ident(String),
    Env {
        name: String,
        default: Option<Box<Expr>>,
    },
    Array(Vec<Expr>),
    Table(Vec<(String, Expr)>),
}