cecko
List of all members
cecko::CKContext Struct Reference

Semantic layer of compiler context. More...

#include <cktables.hpp>

Inheritance diagram for cecko::CKContext:
[legend]

Public Member Functions

Scope control
void enter_function (CKFunctionObs f, CKFunctionFormalPackArray pack, loc_t loc)
 Signalize entering of the compound statement of the definition of the function f.
 
void exit_function ()
 Signalize exiting of the compound statement of the definition of a function.
 
void enter_block ()
 Signalize entering of a compound statement other than a function definition.
 
void exit_block ()
 Signalize exiting of a compound statement other than a function definition.
 
CKTypeSafeObs current_function_return_type ()
 The return type of the current function.
 
Built-in types
CKVoidTypeSafeObs get_void_type () const
 The built-in "void" type descriptor.
 
CKBoolTypeSafeObs get_bool_type () const
 The built-in "_Bool" type descriptor.
 
CKCharTypeSafeObs get_char_type () const
 The built-in "char" type descriptor.
 
CKIntTypeSafeObs get_int_type () const
 The built-in "int" type descriptor.
 
Creating unnamed types
CKPtrTypeSafeObs get_pointer_type (const CKTypeRefPack &pack)
 A pointer type descriptor.
 
CKArrayTypeSafeObs get_array_type (CKTypeObs element_type, CKIRConstantIntObs size)
 An array type descriptor.
 
CKFunctionTypeSafeObs get_function_type (CKTypeObs ret_type, CKTypeObsArray arg_types, bool variadic=false)
 A function type descriptor.
 
Named struct types
CKStructTypeSafeObs declare_struct_type (const CIName &n, loc_t loc)
 Reference or declare a struct type.
 
CKStructTypeSafeObs define_struct_type_open (const CIName &n, loc_t loc)
 Signalize entering the definition of the struct type named n.
 
void define_struct_type_close (CKStructTypeObs type, const CKStructItemArray &items)
 Signalize exiting the definition of the struct type type.
 
Named enum types
CKEnumTypeSafeObs declare_enum_type (const CIName &n, loc_t loc)
 Reference or declare an enum type.
 
CKEnumTypeSafeObs define_enum_type_open (const CIName &n, loc_t loc)
 Signalize entering the definition of the enum type named n.
 
void define_enum_type_close (CKEnumTypeObs type, CKConstantObsVector items)
 Signalize exiting the definition of the enum type type.
 
Variables
void define_var (const CIName &name, const CKTypeRefPack &type_pack, loc_t loc)
 Define a global or local variable.
 
Typedefs
CKTypedefConstSafeObs define_typedef (const CIName &name, const CKTypeRefPack &type_pack, loc_t loc)
 Define a typedef.
 
Enumeration constants
CKConstantConstSafeObs define_constant (const CIName &name, CKIRConstantIntObs value, loc_t loc)
 Define an enumeration constant.
 
Functions
CKFunctionSafeObs declare_function (const CIName &n, CKTypeObs type, loc_t loc)
 Declare a function (with or without body)
 
Finding named objects
CKNamedSafeObs find (const CIName &n)
 Find a named (constant, variable, or function) object.
 
CKTypedefConstSafeObs find_typedef (const CIName &n) const
 Find a typedef.
 
Determination of typedefs in lexer
bool is_typedef (const CIName &n) const
 Check whether the name is a typedef (for the lexer)
 
Direct access to LLVM types
CKIRTypeObs get_ir_int64 ()
 LLVM representation of C-types "int64_t" and "uint64_t".
 
Representation of integer constants
CKIRConstantIntObs get_int8_constant (std::int_fast32_t v)
 LLVM constant of type "char".
 
CKIRConstantIntObs get_int32_constant (std::int_fast32_t v)
 LLVM constant of type "int".
 
Basic blocks
CKIRBasicBlockObs create_basic_block (const std::string &name)
 Create a new basic block in the current function.
 
Active code builder
CKIRBuilderObs builder ()
 The active builder for the currently open basic block (or inactive)
 
Type properties
CKIRConstantIntObs get_type_size (CKTypeObs type) const
 Size of a type in bytes.
 

Detailed Description

Semantic layer of compiler context.


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