neo_solidity/codegen.rs
1//! Yul Code Generation Module
2//!
3//! Generates NeoVM bytecode from Yul AST. This module handles the translation
4//! of high-level Yul constructs to low-level NeoVM instructions.
5//!
6//! # Output
7//!
8//! - [`CompilationResult`] - Complete compilation output including bytecode,
9//! ABI, manifest, and debug information
10//!
11//! # Code Generation Pipeline
12//!
13//! 1. AST traversal and instruction emission
14//! 2. Label resolution and jump patching
15//! 3. Optimization passes
16//! 4. Final bytecode assembly
17
18use crate::error::CompilerError;
19use crate::parser::{AstNode, AstNodeType};
20use crate::types::CompilerConfig;
21use sha2::{Digest, Sha256};
22use std::collections::HashSet;
23
24include!("codegen/codegen_types.rs");
25include!("codegen/codegen_impl.rs");
26include!("codegen/interop.rs");