Cthulhu  0.2.10
Cthulhu compiler collection
value.c File Reference
#include "arena/arena.h"
#include "common.h"
#include "cthulhu/tree/tree.h"
#include "std/vector.h"
#include "base/panic.h"
#include "memory/memory.h"
Include dependency graph for value.c:

Go to the source code of this file.

Macros

#define EXPECT_TYPE(TY, KIND)   CTASSERTF(TY->kind == KIND, "expected %s, got %s", ssa_type_name(KIND), ssa_type_name(TY->kind))
 

Functions

ssa_value_tssa_value_empty (const ssa_type_t *type)
 
ssa_value_tssa_value_unit (const ssa_type_t *type)
 
ssa_value_tssa_value_bool (const ssa_type_t *type, bool value)
 
ssa_value_tssa_value_digit (const ssa_type_t *type, const mpz_t value)
 
ssa_value_tssa_value_char (const ssa_type_t *type, char value)
 
ssa_value_tssa_value_string (const ssa_type_t *type, text_view_t text)
 
ssa_value_tssa_value_from (map_t *types, const tree_t *expr)
 
ssa_value_tssa_value_noinit (const ssa_type_t *type)
 
ssa_value_tssa_value_literal (const ssa_type_t *type, ssa_literal_value_t value)
 
ssa_value_tssa_value_relative (const ssa_type_t *type, ssa_relative_value_t value)
 
ssa_value_tssa_value_opaque_literal (const ssa_type_t *type, mpz_t value)
 
STA_DECL ssa_literal_value_t ssa_value_get_literal (const ssa_value_t *value)
 
STA_DECL bool ssa_value_get_bool (const ssa_value_t *value)
 
STA_DECL void ssa_value_get_digit (const ssa_value_t *value, mpz_t result)
 

Macro Definition Documentation

◆ EXPECT_TYPE

#define EXPECT_TYPE (   TY,
  KIND 
)    CTASSERTF(TY->kind == KIND, "expected %s, got %s", ssa_type_name(KIND), ssa_type_name(TY->kind))

Definition at line 13 of file value.c.

Function Documentation

◆ ssa_value_bool()

ssa_value_t* ssa_value_bool ( const ssa_type_t type,
bool  value 
)

Definition at line 39 of file value.c.

◆ ssa_value_char()

ssa_value_t* ssa_value_char ( const ssa_type_t type,
char  value 
)

Definition at line 54 of file value.c.

◆ ssa_value_digit()

ssa_value_t* ssa_value_digit ( const ssa_type_t type,
const mpz_t  value 
)

Definition at line 46 of file value.c.

◆ ssa_value_empty()

ssa_value_t* ssa_value_empty ( const ssa_type_t type)

value api

Definition at line 25 of file value.c.

◆ ssa_value_from()

ssa_value_t* ssa_value_from ( map_t types,
const tree_t expr 
)

Definition at line 87 of file value.c.

◆ ssa_value_get_digit()

STA_DECL void ssa_value_get_digit ( const ssa_value_t value,
mpz_t  result 
)

Definition at line 145 of file value.c.

◆ ssa_value_literal()

ssa_value_t* ssa_value_literal ( const ssa_type_t type,
ssa_literal_value_t  value 
)

Definition at line 106 of file value.c.

◆ ssa_value_noinit()

ssa_value_t* ssa_value_noinit ( const ssa_type_t type)

Definition at line 101 of file value.c.

◆ ssa_value_opaque_literal()

ssa_value_t* ssa_value_opaque_literal ( const ssa_type_t type,
mpz_t  value 
)

Definition at line 120 of file value.c.

◆ ssa_value_relative()

ssa_value_t* ssa_value_relative ( const ssa_type_t type,
ssa_relative_value_t  value 
)

Definition at line 113 of file value.c.

◆ ssa_value_string()

ssa_value_t* ssa_value_string ( const ssa_type_t type,
text_view_t  text 
)

Definition at line 62 of file value.c.

◆ ssa_value_unit()

ssa_value_t* ssa_value_unit ( const ssa_type_t type)

Definition at line 32 of file value.c.