Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Aleph::Compiler_C_Backend Class Reference

Emits portable C from one validated Compiler_IR_Module. More...

#include <Compiler_Backend_C.H>

Collaboration diagram for Aleph::Compiler_C_Backend:
[legend]

Classes

class  Emitter
 
struct  Symbol_Names
 

Public Member Functions

 Compiler_C_Backend (Compiler_C_Backend_Options options_in={})
 Builds one reusable C backend with options_in.
 
Compiler_C_Backend_Emission emit_module (const Compiler_IR_Module *module, const Compiler_Type_Context *types=nullptr) const
 Emits one validated IR module as portable C.
 

Private Attributes

Compiler_C_Backend_Options options
 

Detailed Description

Emits portable C from one validated Compiler_IR_Module.

Definition at line 232 of file Compiler_Backend_C.H.

Constructor & Destructor Documentation

◆ Compiler_C_Backend()

Aleph::Compiler_C_Backend::Compiler_C_Backend ( Compiler_C_Backend_Options  options_in = {})
inlineexplicit

Builds one reusable C backend with options_in.

Definition at line 1274 of file Compiler_Backend_C.H.

Member Function Documentation

◆ emit_module()

Compiler_C_Backend_Emission Aleph::Compiler_C_Backend::emit_module ( const Compiler_IR_Module *  module,
const Compiler_Type_Context *  types = nullptr 
) const
inline

Emits one validated IR module as portable C.

Parameters
moduleIR module to translate.
typesOptional type context used only for readable comments.
Returns
Structured emission result containing the generated C source and the most relevant exported symbol names.

Definition at line 1285 of file Compiler_Backend_C.H.

References Aleph::blossom_maximum_cardinality_matching(), options, Aleph::Compiler_C_Backend::Emitter::run(), and Aleph::Compiler_C_Backend_Emission::valid.

Member Data Documentation

◆ options

Compiler_C_Backend_Options Aleph::Compiler_C_Backend::options
private

Definition at line 234 of file Compiler_Backend_C.H.

Referenced by emit_module().


The documentation for this class was generated from the following file: