crypt-configs 0.1.0

A simple config format
Documentation
//! Resolve Parsed AST
//! Created 6/4/2026 - Nyx

use crate::{body::{CryptConfig, CryptObject}, parse::Node};


pub fn resolve(
    target: &mut CryptConfig,
    node: Node
) {
    match node {
        Node::Sequence(left, right) => {
            resolve(target, *left);
            resolve(target, *right);
        }

        Node::Assignment(ident, right) => {
            if let Node::Identifier(ident) = *ident {
                target.add_item(ident, match *right {
                    Node::Body(body) => {
                        let mut config = CryptConfig::new();
                        resolve(&mut config, *body);
                        CryptObject::Body(config)
                    }

                    Node::Identifier(ident) => CryptObject::Identifier(ident),
                    Node::Value(val) => CryptObject::String(val),
                    
                    _ => CryptObject::Null,
                });
            }
        }

        _ => ()
    }
}