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

Stable type graph for the compiler-support MVP. More...

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

Go to the source code of this file.

Classes

struct  Aleph::Compiler_Type
 One node inside the type graph. More...
 
class  Aleph::Compiler_Type_Context
 Context owning all compiler type nodes. More...
 

Namespaces

namespace  Aleph
 Main namespace for Aleph-w library functions.
 

Typedefs

using Aleph::Compiler_Type_Id = size_t
 

Enumerations

enum class  Aleph::Compiler_Type_Kind {
  Aleph::Builtin , Aleph::Tuple , Aleph::Function , Aleph::Struct ,
  Aleph::Enum , Aleph::Type_Variable
}
 Category of one stored type node. More...
 
enum class  Aleph::Compiler_Builtin_Type {
  Aleph::Invalid , Aleph::Unit , Aleph::Bool , Aleph::Integer ,
  Aleph::String , Aleph::Character
}
 Built-in scalar types available in the MVP type graph. More...
 

Functions

const char * Aleph::compiler_type_kind_name (const Compiler_Type_Kind kind) noexcept
 Returns a stable debug name for a type kind.
 
const char * Aleph::compiler_builtin_type_name (const Compiler_Builtin_Type builtin) noexcept
 Returns a stable debug name for a built-in type.
 

Detailed Description

Stable type graph for the compiler-support MVP.

This header introduces a compact type representation that can be shared by parsers, semantic analyzers, and future inference passes. Types are owned by Compiler_Type_Context and referenced through stable integer identifiers.

The current model is intentionally small:

  • built-in scalar types
  • tuple types
  • function types
  • nominal struct and enum types
  • type variables, including optional rigid variables

This layer is independent from the AST on purpose. It can be reused by a hand-written parser, a yacc-generated parser, or a future typed IR.

Definition in file Compiler_Types.H.