Cthulhu  0.2.10
Cthulhu compiler collection
query.c File Reference
#include "arena/arena.h"
#include "base/util.h"
#include "common.h"
#include "cthulhu/tree/query.h"
#include "memory/memory.h"
#include "std/vector.h"
#include "std/str.h"
#include "base/panic.h"
#include <stdint.h>
#include <stdio.h>
#include "cthulhu/tree/tree.inc"
Include dependency graph for query.c:

Go to the source code of this file.

Macros

#define TREE_KIND(ID, NAME, TAGS)   case ID: return NAME;
 
#define EXPECT_STORAGE_DECL(SELF)   (void)0
 

Functions

const char * tree_kind_to_string (tree_kind_t kind)
 
const char * tree_to_string (const tree_t *self)
 
char * tree_to_string_arena (const tree_t *self, arena_t *arena)
 
const tree_attribs_ttree_get_attrib (const tree_t *self)
 
bool tree_is (const tree_t *self, tree_kind_t kind)
 
bool tree_has_vis (const tree_t *self, tree_visibility_t visibility)
 
bool tree_has_storage (const tree_t *self)
 
tree_storage_t get_storage (const tree_t *self)
 
tree_quals_t tree_get_storage_quals (const tree_t *self)
 
const tree_ttree_get_storage_type (const tree_t *self)
 
size_t tree_get_storage_size (const tree_t *self)
 
vector_ttree_enum_get_cases (const tree_t *self)
 
const tree_ttree_fn_get_return (const tree_t *self)
 
const vector_ttree_fn_get_params (const tree_t *self)
 
tree_arity_t tree_fn_get_arity (const tree_t *self)
 
tree_ttree_ty_get_field (const tree_t *self, const char *name)
 
tree_ttree_ty_get_case (const tree_t *self, const char *name)
 
bool tree_ty_is_address (const tree_t *type)
 
tree_quals_t tree_ty_get_quals (const tree_t *self)
 
const tree_ttree_ty_load_type (const tree_t *self)
 get the type of a type after it has been loaded More...
 

Macro Definition Documentation

◆ EXPECT_STORAGE_DECL

#define EXPECT_STORAGE_DECL (   SELF)    (void)0

quals

Definition at line 111 of file query.c.

◆ TREE_KIND

#define TREE_KIND (   ID,
  NAME,
  TAGS 
)    case ID: return NAME;

Function Documentation

◆ get_storage()

tree_storage_t get_storage ( const tree_t self)

Definition at line 119 of file query.c.

◆ tree_enum_get_cases()

vector_t* tree_enum_get_cases ( const tree_t self)

enums

Definition at line 156 of file query.c.

◆ tree_fn_get_arity()

tree_arity_t tree_fn_get_arity ( const tree_t self)

Definition at line 191 of file query.c.

◆ tree_fn_get_params()

const vector_t* tree_fn_get_params ( const tree_t self)

Definition at line 179 of file query.c.

◆ tree_fn_get_return()

const tree_t* tree_fn_get_return ( const tree_t self)

fns

Definition at line 167 of file query.c.

◆ tree_get_attrib()

const tree_attribs_t* tree_get_attrib ( const tree_t self)

Definition at line 83 of file query.c.

◆ tree_get_storage_quals()

tree_quals_t tree_get_storage_quals ( const tree_t self)

storage decl queries

Definition at line 126 of file query.c.

◆ tree_get_storage_size()

size_t tree_get_storage_size ( const tree_t self)

Definition at line 144 of file query.c.

◆ tree_get_storage_type()

const tree_t* tree_get_storage_type ( const tree_t self)

Definition at line 136 of file query.c.

◆ tree_has_storage()

bool tree_has_storage ( const tree_t self)

Definition at line 114 of file query.c.

◆ tree_has_vis()

bool tree_has_vis ( const tree_t self,
tree_visibility_t  visibility 
)

Definition at line 98 of file query.c.

◆ tree_is()

bool tree_is ( const tree_t self,
tree_kind_t  kind 
)

Definition at line 91 of file query.c.

◆ tree_kind_to_string()

const char* tree_kind_to_string ( tree_kind_t  kind)

Definition at line 23 of file query.c.

◆ tree_to_string()

const char* tree_to_string ( const tree_t self)

Definition at line 40 of file query.c.

◆ tree_to_string_arena()

char* tree_to_string_arena ( const tree_t self,
arena_t arena 
)

Definition at line 46 of file query.c.

◆ tree_ty_get_case()

tree_t* tree_ty_get_case ( const tree_t self,
const char *  name 
)

Definition at line 231 of file query.c.

◆ tree_ty_get_field()

tree_t* tree_ty_get_field ( const tree_t self,
const char *  name 
)

type queries

Definition at line 224 of file query.c.

◆ tree_ty_get_quals()

tree_quals_t tree_ty_get_quals ( const tree_t self)

Definition at line 257 of file query.c.

◆ tree_ty_is_address()

bool tree_ty_is_address ( const tree_t type)

Definition at line 238 of file query.c.

◆ tree_ty_load_type()

const tree_t* tree_ty_load_type ( const tree_t self)

get the type of a type after it has been loaded

Note
pointer -> type, reference -> type, etc.
Parameters
selfthe type to load from
Returns
const tree_t* the loaded type

Definition at line 267 of file query.c.