Aleph-w 3.0
A C++ Library for Data Structures and Algorithms
Loading...
Searching...
No Matches
Compiler_HIR_Model.H File Reference

Reusable typed high-level IR model independent from any concrete frontend. More...

#include <sstream>
#include <string>
#include <string_view>
#include <utility>
#include <Compiler_Operator.H>
#include <Compiler_Types.H>
#include <ah-arena.H>
#include <ah-errors.H>
#include <tpl_dynArray.H>
Include dependency graph for Compiler_HIR_Model.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Aleph::Compiler_HIR_Node
 Base node carrying a source span. More...
 
class  Aleph::Compiler_HIR_Context
 Arena-backed ownership context for HIR nodes. More...
 
struct  Aleph::Compiler_HIR_Context::Owned_Object
 
struct  Aleph::Compiler_HIR_Expr
 Base class for HIR expressions. More...
 
struct  Aleph::Compiler_HIR_Stmt
 Base class for HIR statements. More...
 
struct  Aleph::Compiler_HIR_Invalid_Expr
 Invalid HIR expression placeholder. More...
 
struct  Aleph::Compiler_HIR_Constant_Expr
 Typed constant expression. More...
 
struct  Aleph::Compiler_HIR_Variable_Expr
 Typed variable reference expression. More...
 
struct  Aleph::Compiler_HIR_Unary_Expr
 Typed unary expression. More...
 
struct  Aleph::Compiler_HIR_Binary_Expr
 Typed binary expression. More...
 
struct  Aleph::Compiler_HIR_Call_Expr
 Typed function call expression. More...
 
struct  Aleph::Compiler_HIR_Invalid_Stmt
 Invalid HIR statement placeholder. More...
 
struct  Aleph::Compiler_HIR_Eval_Stmt
 Expression statement in HIR. More...
 
struct  Aleph::Compiler_HIR_Let_Stmt
 Typed lexical binding statement. More...
 
struct  Aleph::Compiler_HIR_Return_Stmt
 Return statement in HIR. More...
 
struct  Aleph::Compiler_HIR_Block_Stmt
 Structured block statement. More...
 
struct  Aleph::Compiler_HIR_If_Stmt
 Structured conditional statement. More...
 
struct  Aleph::Compiler_HIR_While_Stmt
 Structured while-loop statement. More...
 
struct  Aleph::Compiler_HIR_Break_Stmt
 break statement in HIR. More...
 
struct  Aleph::Compiler_HIR_Continue_Stmt
 continue statement in HIR. More...
 
struct  Aleph::Compiler_HIR_Param
 Parameter metadata for one HIR function. More...
 
struct  Aleph::Compiler_HIR_Function
 Typed HIR function. More...
 
struct  Aleph::Compiler_HIR_Module
 Top-level HIR module. More...
 

Namespaces

namespace  Aleph
 Main namespace for Aleph-w library functions.
 
namespace  Aleph::Compiler_HIR_Detail
 

Enumerations

enum class  Aleph::Compiler_HIR_Expr_Kind {
  Aleph::Invalid , Aleph::Constant , Aleph::Variable , Aleph::Unary ,
  Aleph::Binary , Aleph::Call
}
 Kinds of HIR expressions. More...
 
enum class  Aleph::Compiler_HIR_Stmt_Kind {
  Aleph::Invalid , Aleph::Eval , Aleph::Let , Aleph::Return ,
  Aleph::Block , Aleph::If , Aleph::While , Aleph::Break ,
  Aleph::Continue
}
 Kinds of HIR statements. More...
 
enum class  Aleph::Compiler_HIR_Constant_Kind {
  Aleph::Integer , Aleph::String , Aleph::Character , Aleph::Bool ,
  Aleph::Unit
}
 Kinds of HIR constants. More...
 

Functions

Source_Span Aleph::compiler_hir_merge_spans (const Source_Span &lhs, const Source_Span &rhs) noexcept
 Merges two spans without depending on the parser-oriented AST layer.
 
const char * Aleph::compiler_hir_expr_kind_name (const Compiler_HIR_Expr_Kind kind) noexcept
 Returns a stable debug name for an HIR expression kind.
 
const char * Aleph::compiler_hir_stmt_kind_name (const Compiler_HIR_Stmt_Kind kind) noexcept
 Returns a stable debug name for an HIR statement kind.
 
const char * Aleph::compiler_hir_constant_kind_name (const Compiler_HIR_Constant_Kind kind) noexcept
 Returns a stable debug name for an HIR constant kind.
 
std::string Aleph::Compiler_HIR_Detail::escape_text (std::string_view text)
 
void Aleph::Compiler_HIR_Detail::append_indent (std::ostream &out, const size_t indent)
 
std::string Aleph::Compiler_HIR_Detail::type_text (const Compiler_Type_Context *types, const Compiler_Type_Id id)
 
void Aleph::Compiler_HIR_Detail::dump_expr (const Compiler_HIR_Expr *expr, std::ostream &out, const size_t indent, const Compiler_Type_Context *types)
 
void Aleph::Compiler_HIR_Detail::dump_stmt (const Compiler_HIR_Stmt *stmt, std::ostream &out, const size_t indent, const Compiler_Type_Context *types)
 
std::string Aleph::compiler_dump_hir_expr (const Compiler_HIR_Expr *expr, const Compiler_Type_Context &types)
 Dumps one HIR expression in a deterministic text format.
 
std::string Aleph::compiler_dump_hir_stmt (const Compiler_HIR_Stmt *stmt, const Compiler_Type_Context &types)
 Dumps one HIR statement in a deterministic text format.
 
std::string Aleph::compiler_dump_hir_function (const Compiler_HIR_Function *function, const Compiler_Type_Context &types)
 Dumps one HIR function in a deterministic text format.
 
std::string Aleph::compiler_dump_hir_module (const Compiler_HIR_Module *module, const Compiler_Type_Context &types)
 Dumps one HIR module in a deterministic text format.
 

Detailed Description

Reusable typed high-level IR model independent from any concrete frontend.

This header defines the stable HIR node model, ownership context, and deterministic dump helpers. It is the reusable boundary that language frontends can target before later execution or lowering stages.

Definition in file Compiler_HIR_Model.H.