Cthulhu  0.2.10
Cthulhu compiler collection
tree_t Struct Reference

#include <tree.h>

Collaboration diagram for tree_t:

Data Fields

tree_kind_t kind
 
const node_tnode
 
const tree_ttype
 
tree_attribs_tattribs
 
union {
   mpz_t   digit_value
 
   bool   bool_value
 
   text_view_t   string_value
 
   tree_t *   load
 
   struct {
      const tree_t *   expr
 
      tree_cast_t   cast
 
   } 
 
   struct {
      unary_t   unary
 
      tree_t *   operand
 
   } 
 
   struct {
      union {
         binary_t   binary
 
         compare_t   compare
 
      } 
 
      const tree_t *   lhs
 
      const tree_t *   rhs
 
   } 
 
   struct {
      const tree_t *   callee
 
      const vector_t *   args
 
   } 
 
   struct {
      const diagnostic_t *   diagnostic
 
      const char *   message
 
   } 
 
   const vector_t *   stmts
 
   const tree_t *   value
 
   struct {
      tree_t *   dst
 
      const tree_t *   src
 
      bool   init
 
   } 
 
   struct {
      tree_t *   cond
 
      tree_t *   then
 
      tree_t *   other
 
   } 
 
   struct {
      const tree_t *   object
 
      struct {
         const tree_t *   offset
 
         const tree_t *   field
 
      } 
 
   } 
 
   struct {
      tree_t *   label
 
      tree_jump_t   jump
 
   } 
 
   struct {
      const char *   name
 the name of the declaration More...
 
      const tree_attribs_t *   attrib
 the attributes of the declaration More...
 
      const tree_resolve_info_t *   resolve
 the resolve configuration of the declaration, NULL if resolved More...
 
      tree_quals_t   quals
 
      eval_model_t   eval_model
 
      union {
         struct {
            const tree_t *   ptr
 
            const tree_t *   len
 
            size_t   length
 
         } 
 
         struct {
            digit_t   digit
 
            sign_t   sign
 
         } 
 
         vector_t *   fields
 
         struct {
            const tree_t *   underlying
 
            vector_t *   cases
 
            tree_t *   default_case
 
         } 
 
         tree_t *   case_value
 
         struct {
            const vector_t *   params
 
            union {
               struct {
                  vector_t *   locals
 
                  tree_t *   body
 
               } 
 
               struct {
                  const tree_t *   return_type
 
                  tree_arity_t   arity
 
               } 
 
            } 
 
         } 
 
         struct {
            tree_storage_t   storage
 
            tree_t *   initial
 
         } 
 
         struct {
            arena_t *   arena
 
            tree_t *   parent
 
            tree_cookie_t *   cookie
 
            logger_t *   reports
 
            vector_t *   tags
 vector_t<map_t<const char*, void*>*> More...
 
         } 
 
      } 
 
   } 
 
}; 
 

Detailed Description

Definition at line 67 of file tree.h.

Field Documentation

◆ 

union { ... }

◆ arena

arena_t* tree_t::arena

Definition at line 223 of file tree.h.

◆ args

const vector_t* tree_t::args

Definition at line 114 of file tree.h.

◆ arity

tree_arity_t tree_t::arity

Definition at line 209 of file tree.h.

◆ attrib

const tree_attribs_t* tree_t::attrib

the attributes of the declaration

Definition at line 164 of file tree.h.

◆ attribs

tree_attribs_t* tree_t::attribs

Definition at line 71 of file tree.h.

◆ binary

binary_t tree_t::binary

Definition at line 103 of file tree.h.

◆ body

tree_t* tree_t::body

Definition at line 203 of file tree.h.

◆ bool_value

bool tree_t::bool_value

Definition at line 78 of file tree.h.

◆ callee

const tree_t* tree_t::callee

Definition at line 113 of file tree.h.

◆ case_value

tree_t* tree_t::case_value

Definition at line 194 of file tree.h.

◆ cases

vector_t* tree_t::cases

Definition at line 189 of file tree.h.

◆ cast

tree_cast_t tree_t::cast

Definition at line 91 of file tree.h.

◆ compare

compare_t tree_t::compare

Definition at line 104 of file tree.h.

◆ cond

tree_t* tree_t::cond

Definition at line 138 of file tree.h.

◆ cookie

tree_cookie_t* tree_t::cookie

Definition at line 225 of file tree.h.

◆ default_case

tree_t* tree_t::default_case

Definition at line 190 of file tree.h.

◆ diagnostic

const diagnostic_t* tree_t::diagnostic

Definition at line 119 of file tree.h.

◆ digit

digit_t tree_t::digit

Definition at line 179 of file tree.h.

◆ digit_value

mpz_t tree_t::digit_value

Definition at line 75 of file tree.h.

◆ dst

tree_t* tree_t::dst

Definition at line 131 of file tree.h.

◆ eval_model

eval_model_t tree_t::eval_model

Definition at line 167 of file tree.h.

◆ expr

const tree_t* tree_t::expr

Definition at line 88 of file tree.h.

◆ field

const tree_t* tree_t::field

Definition at line 151 of file tree.h.

◆ fields

vector_t* tree_t::fields

Definition at line 184 of file tree.h.

◆ init

bool tree_t::init

Definition at line 133 of file tree.h.

◆ initial

tree_t* tree_t::initial

Definition at line 218 of file tree.h.

◆ jump

tree_jump_t tree_t::jump

Definition at line 158 of file tree.h.

◆ kind

tree_kind_t tree_t::kind

Definition at line 68 of file tree.h.

◆ label

tree_t* tree_t::label

Definition at line 157 of file tree.h.

◆ len

const tree_t* tree_t::len

Definition at line 173 of file tree.h.

◆ length

size_t tree_t::length

Definition at line 174 of file tree.h.

◆ lhs

const tree_t* tree_t::lhs

Definition at line 107 of file tree.h.

◆ load

tree_t* tree_t::load

Definition at line 84 of file tree.h.

◆ locals

vector_t* tree_t::locals

Definition at line 202 of file tree.h.

◆ message

const char* tree_t::message

Definition at line 120 of file tree.h.

◆ name

const char* tree_t::name

the name of the declaration

Definition at line 163 of file tree.h.

◆ node

const node_t* tree_t::node

Definition at line 69 of file tree.h.

◆ object

const tree_t* tree_t::object

Definition at line 145 of file tree.h.

◆ offset

const tree_t* tree_t::offset

Definition at line 148 of file tree.h.

◆ operand

tree_t* tree_t::operand

Definition at line 97 of file tree.h.

◆ other

tree_t* tree_t::other

Definition at line 140 of file tree.h.

◆ params

const vector_t* tree_t::params

Definition at line 197 of file tree.h.

◆ parent

tree_t* tree_t::parent

Definition at line 224 of file tree.h.

◆ ptr

const tree_t* tree_t::ptr

Definition at line 172 of file tree.h.

◆ quals

tree_quals_t tree_t::quals

Definition at line 166 of file tree.h.

◆ reports

logger_t* tree_t::reports

Definition at line 227 of file tree.h.

◆ resolve

const tree_resolve_info_t* tree_t::resolve

the resolve configuration of the declaration, NULL if resolved

Definition at line 165 of file tree.h.

◆ return_type

const tree_t* tree_t::return_type

Definition at line 208 of file tree.h.

◆ rhs

const tree_t* tree_t::rhs

Definition at line 108 of file tree.h.

◆ sign

sign_t tree_t::sign

Definition at line 180 of file tree.h.

◆ src

const tree_t* tree_t::src

Definition at line 132 of file tree.h.

◆ stmts

const vector_t* tree_t::stmts

Definition at line 124 of file tree.h.

◆ storage

tree_storage_t tree_t::storage

Definition at line 216 of file tree.h.

◆ string_value

text_view_t tree_t::string_value

Definition at line 81 of file tree.h.

◆ tags

vector_t* tree_t::tags

vector_t<map_t<const char*, void*>*>

Definition at line 228 of file tree.h.

◆ then

tree_t* tree_t::then

Definition at line 139 of file tree.h.

◆ type

const tree_t* tree_t::type

Definition at line 70 of file tree.h.

◆ unary

unary_t tree_t::unary

Definition at line 96 of file tree.h.

◆ underlying

const tree_t* tree_t::underlying

Definition at line 188 of file tree.h.

◆ value

const tree_t* tree_t::value

Definition at line 127 of file tree.h.


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