Cthulhu  0.2.10
Cthulhu compiler collection
sema.c File Reference
#include "ctu/sema/sema.h"
#include "cthulhu/broker/broker.h"
#include "cthulhu/events/events.h"
#include "cthulhu/tree/tree.h"
#include "cthulhu/tree/query.h"
#include "cthulhu/util/util.h"
#include "memory/memory.h"
#include "std/vector.h"
#include "base/panic.h"
Include dependency graph for sema.c:

Go to the source code of this file.

Data Structures

struct  digit_info_t
 

Macros

#define DIGIT_TYPE(DIGIT, SIGN)   gIntTypes[(DIGIT) * eSignTotal + (SIGN)]
 

Functions

ctu_sema_t ctu_sema_init (tree_t *sema, tree_t *decl, vector_t *block)
 
ctu_sema_t ctu_sema_nested (ctu_sema_t *parent, tree_t *sema, tree_t *decl, vector_t *block)
 
ctu_sema_t ctu_sema_child (ctu_sema_t *sema)
 
logger_tctu_sema_reports (ctu_sema_t *sema)
 
tree_tctu_get_namespace (tree_t *sema, const char *name, bool *imported)
 
tree_tctu_get_import (tree_t *sema, const char *name)
 
tree_tctu_get_type (tree_t *sema, const char *name)
 
ctu_attrib_tctu_get_attrib (tree_t *sema, const char *name)
 
tree_tctu_get_decl (tree_t *sema, const char *name)
 
tree_tctu_get_loop (tree_t *sema, const char *name)
 
void ctu_add_decl (tree_t *sema, ctu_tag_t tag, const char *name, tree_t *decl)
 
tree_tctu_current_loop (ctu_sema_t *sema)
 
void ctu_set_current_loop (ctu_sema_t *sema, tree_t *loop)
 
tree_tctu_get_int_type (digit_t digit, sign_t sign)
 
tree_tctu_get_char_type (void)
 
tree_tctu_get_bool_type (void)
 
tree_tctu_get_void_type (void)
 
void ctu_rt_mod (language_runtime_t *runtime, tree_t *root)
 

Macro Definition Documentation

◆ DIGIT_TYPE

#define DIGIT_TYPE (   DIGIT,
  SIGN 
)    gIntTypes[(DIGIT) * eSignTotal + (SIGN)]

Definition at line 175 of file sema.c.

Function Documentation

◆ ctu_add_decl()

void ctu_add_decl ( tree_t sema,
ctu_tag_t  tag,
const char *  name,
tree_t decl 
)

adding decls

Definition at line 129 of file sema.c.

◆ ctu_current_loop()

tree_t* ctu_current_loop ( ctu_sema_t sema)

extras

Definition at line 149 of file sema.c.

◆ ctu_get_attrib()

ctu_attrib_t* ctu_get_attrib ( tree_t sema,
const char *  name 
)

Definition at line 108 of file sema.c.

◆ ctu_get_bool_type()

tree_t* ctu_get_bool_type ( void  )

Definition at line 208 of file sema.c.

◆ ctu_get_char_type()

tree_t* ctu_get_char_type ( void  )

Definition at line 207 of file sema.c.

◆ ctu_get_decl()

tree_t* ctu_get_decl ( tree_t sema,
const char *  name 
)

Definition at line 115 of file sema.c.

◆ ctu_get_import()

tree_t* ctu_get_import ( tree_t sema,
const char *  name 
)

Definition at line 94 of file sema.c.

◆ ctu_get_int_type()

tree_t* ctu_get_int_type ( digit_t  digit,
sign_t  sign 
)

builtin types

Definition at line 202 of file sema.c.

◆ ctu_get_loop()

tree_t* ctu_get_loop ( tree_t sema,
const char *  name 
)

Definition at line 122 of file sema.c.

◆ ctu_get_namespace()

tree_t* ctu_get_namespace ( tree_t sema,
const char *  name,
bool *  imported 
)

decls

Definition at line 75 of file sema.c.

◆ ctu_get_type()

tree_t* ctu_get_type ( tree_t sema,
const char *  name 
)

Definition at line 101 of file sema.c.

◆ ctu_get_void_type()

tree_t* ctu_get_void_type ( void  )

Definition at line 209 of file sema.c.

◆ ctu_rt_mod()

void ctu_rt_mod ( language_runtime_t runtime,
tree_t root 
)

runtime module

Definition at line 281 of file sema.c.

◆ ctu_sema_child()

ctu_sema_t ctu_sema_child ( ctu_sema_t sema)

Definition at line 51 of file sema.c.

◆ ctu_sema_init()

ctu_sema_t ctu_sema_init ( tree_t sema,
tree_t decl,
vector_t block 
)

sema

Definition at line 21 of file sema.c.

◆ ctu_sema_nested()

ctu_sema_t ctu_sema_nested ( ctu_sema_t parent,
tree_t sema,
tree_t decl,
vector_t block 
)

Definition at line 35 of file sema.c.

◆ ctu_sema_reports()

logger_t* ctu_sema_reports ( ctu_sema_t sema)

Definition at line 65 of file sema.c.

◆ ctu_set_current_loop()

void ctu_set_current_loop ( ctu_sema_t sema,
tree_t loop 
)

Definition at line 156 of file sema.c.