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,
});
}
}
_ => ()
}
}