vyre-libs 0.6.2

vyre Category A library ecosystem - pure-IR compositions over vyre-ops hardware primitives
Documentation
//! Object-like macro expansion builder.

use vyre::ir::{Expr, Node};

use super::helpers::*;

pub(super) fn emit_object_like_replacement(
    macro_vals: &str,
    macro_replacement_params: &str,
    out_tok_types: &str,
    max_out_tokens: u32,
) -> Vec<Node> {
    let mut paste_branch = emit_object_like_token_paste_prefix(
        macro_vals,
        macro_replacement_params,
        out_tok_types,
        "object-like-token-paste-cannot-synthesize-token-type",
    );
    paste_branch.push(Node::assign("named_skip_repl", Expr::u32(1)));
    let literal_branch =
        emit_one_output_token(out_tok_types, Expr::var("named_repl_tok"), max_out_tokens);
    emit_object_like_replacement_loop(
        macro_vals,
        macro_replacement_params,
        paste_branch,
        literal_branch,
    )
}