Cthulhu  0.2.10
Cthulhu compiler collection
ctu_t Struct Reference

#include <ast.h>

Collaboration diagram for ctu_t:

Data Fields

ctu_kind_t kind
 
const node_tnode
 
union {
   struct {
      char *   name
 
      bool   exported
 
      const vector_t *   attribs
 
      union {
         const vector_t *   import_path
 
         struct {
            ctu_t *   cond
 
            ctu_t *   then
 
            ctu_t *   other
 
         } 
 
         struct {
            ctu_t *   type
 
            ctu_t *   value
 
            bool   mut
 
         } 
 
         struct {
            const vector_t *   params
 
            char *   variadic
 
            ctu_t *   return_type
 
            ctu_t *   body
 
         } 
 
         struct {
            bool   newtype
 
            ctu_t *   type_alias
 
         } 
 
         const vector_t *   fields
 
         ctu_t *   field_type
 
         ctu_t *   param_type
 
         struct {
            ctu_t *   underlying
 
            const vector_t *   cases
 
         } 
 
         struct {
            bool   default_case
 
            ctu_t *   case_value
 
         } 
 
      } 
 
   } 
 
   ctu_integer_t   integer
 
   bool   bool_value
 
   struct {
      char *   text
 
      size_t   length
 
   } 
 
   const vector_t *   inits
 
   const vector_t *   path
 
   struct {
      union {
         binary_t   binary
 
         compare_t   compare
 
      } 
 
      ctu_t *   lhs
 
      ctu_t *   rhs
 
   } 
 
   struct {
      union {
         ctu_t *   index
 
         unary_t   unary
 
         char *   field
 
         ctu_t *   cast
 
      } 
 
      ctu_t *   expr
 
   } 
 
   struct {
      ctu_t *   callee
 
      const vector_t *   args
 
   } 
 
   const vector_t *   stmts
 
   ctu_t *   result
 
   struct {
      ctu_t *   dst
 
      ctu_t *   src
 
   } 
 
   char *   label
 
   vector_t *   type_name
 
   struct {
      ctu_t *   pointer
 
      bool   array
 
   } 
 
   struct {
      ctu_t *   array_type
 
      ctu_t *   array_length
 
   } 
 
   struct {
      const vector_t *   attrib_path
 
      const vector_t *   attrib_args
 
   } 
 
   struct {
      const vector_t *   modspec
 
      const vector_t *   imports
 
      const vector_t *   decls
 
   } 
 
}; 
 

Detailed Description

Definition at line 86 of file ast.h.

Field Documentation

◆ 

union { ... }

◆ args

const vector_t* ctu_t::args

Definition at line 203 of file ast.h.

◆ array

bool ctu_t::array

Definition at line 227 of file ast.h.

◆ array_length

ctu_t* ctu_t::array_length

Definition at line 233 of file ast.h.

◆ array_type

ctu_t* ctu_t::array_type

Definition at line 232 of file ast.h.

◆ attrib_args

const vector_t* ctu_t::attrib_args

Definition at line 239 of file ast.h.

◆ attrib_path

const vector_t* ctu_t::attrib_path

Definition at line 238 of file ast.h.

◆ attribs

const vector_t* ctu_t::attribs

Definition at line 94 of file ast.h.

◆ binary

binary_t ctu_t::binary

Definition at line 172 of file ast.h.

◆ body

ctu_t* ctu_t::body

Definition at line 119 of file ast.h.

◆ bool_value

bool ctu_t::bool_value

Definition at line 155 of file ast.h.

◆ callee

ctu_t* ctu_t::callee

Definition at line 202 of file ast.h.

◆ case_value

ctu_t* ctu_t::case_value

Definition at line 146 of file ast.h.

◆ cases

const vector_t* ctu_t::cases

Definition at line 140 of file ast.h.

◆ cast

ctu_t* ctu_t::cast

Definition at line 194 of file ast.h.

◆ compare

compare_t ctu_t::compare

Definition at line 175 of file ast.h.

◆ cond

ctu_t* ctu_t::cond

Definition at line 102 of file ast.h.

◆ decls

const vector_t* ctu_t::decls

Definition at line 246 of file ast.h.

◆ default_case

bool ctu_t::default_case

Definition at line 145 of file ast.h.

◆ dst

ctu_t* ctu_t::dst

Definition at line 214 of file ast.h.

◆ exported

bool ctu_t::exported

Definition at line 93 of file ast.h.

◆ expr

ctu_t* ctu_t::expr

Definition at line 197 of file ast.h.

◆ field

char* ctu_t::field

Definition at line 191 of file ast.h.

◆ field_type

ctu_t* ctu_t::field_type

Definition at line 132 of file ast.h.

◆ fields

const vector_t* ctu_t::fields

Definition at line 129 of file ast.h.

◆ import_path

const vector_t* ctu_t::import_path

Definition at line 98 of file ast.h.

◆ imports

const vector_t* ctu_t::imports

Definition at line 245 of file ast.h.

◆ index

ctu_t* ctu_t::index

Definition at line 185 of file ast.h.

◆ inits

const vector_t* ctu_t::inits

Definition at line 164 of file ast.h.

◆ integer

ctu_integer_t ctu_t::integer

Definition at line 152 of file ast.h.

◆ kind

ctu_kind_t ctu_t::kind

Definition at line 87 of file ast.h.

◆ label

char* ctu_t::label

Definition at line 219 of file ast.h.

◆ length

size_t ctu_t::length

Definition at line 160 of file ast.h.

◆ lhs

ctu_t* ctu_t::lhs

Definition at line 178 of file ast.h.

◆ modspec

const vector_t* ctu_t::modspec

Definition at line 244 of file ast.h.

◆ mut

bool ctu_t::mut

Definition at line 111 of file ast.h.

◆ name

char* ctu_t::name

Definition at line 92 of file ast.h.

◆ newtype

bool ctu_t::newtype

Definition at line 124 of file ast.h.

◆ node

const node_t* ctu_t::node

Definition at line 88 of file ast.h.

◆ other

ctu_t* ctu_t::other

Definition at line 104 of file ast.h.

◆ param_type

ctu_t* ctu_t::param_type

Definition at line 135 of file ast.h.

◆ params

const vector_t* ctu_t::params

Definition at line 116 of file ast.h.

◆ path

const vector_t* ctu_t::path

Definition at line 167 of file ast.h.

◆ pointer

ctu_t* ctu_t::pointer

Definition at line 226 of file ast.h.

◆ result

ctu_t* ctu_t::result

Definition at line 210 of file ast.h.

◆ return_type

ctu_t* ctu_t::return_type

Definition at line 118 of file ast.h.

◆ rhs

ctu_t* ctu_t::rhs

Definition at line 179 of file ast.h.

◆ src

ctu_t* ctu_t::src

Definition at line 215 of file ast.h.

◆ stmts

const vector_t* ctu_t::stmts

Definition at line 207 of file ast.h.

◆ text

char* ctu_t::text

Definition at line 159 of file ast.h.

◆ then

ctu_t* ctu_t::then

Definition at line 103 of file ast.h.

◆ type

ctu_t* ctu_t::type

Definition at line 109 of file ast.h.

◆ type_alias

ctu_t* ctu_t::type_alias

Definition at line 125 of file ast.h.

◆ type_name

vector_t* ctu_t::type_name

Definition at line 222 of file ast.h.

◆ unary

unary_t ctu_t::unary

Definition at line 188 of file ast.h.

◆ underlying

ctu_t* ctu_t::underlying

Definition at line 139 of file ast.h.

◆ value

ctu_t* ctu_t::value

Definition at line 110 of file ast.h.

◆ variadic

char* ctu_t::variadic

Definition at line 117 of file ast.h.


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