| Cthulhu
    0.2.10
    Cthulhu compiler collection | 
#include <ast.h>

| Data Fields | |
| obr_kind_t | kind | 
| const node_t * | node | 
| union { | |
| struct { | |
| union { | |
| char * field | |
| unary_t unary | |
| obr_t * cast | |
| const vector_t * args | |
| } | |
| obr_t * expr | |
| } | |
| struct { | |
| obr_t * cond | |
| vector_t * then | |
| } | |
| vector_t * loop | |
| struct { | |
| vector_t * repeat | |
| obr_t * until | |
| } | |
| struct { | |
| union { | |
| compare_t compare | |
| binary_t binary | |
| } | |
| obr_t * lhs | |
| obr_t * rhs | |
| } | |
| struct { | |
| obr_t * dst | |
| obr_t * src | |
| } | |
| vector_t * stmts | |
| struct { | |
| obr_t * branch | |
| vector_t * branch_body | |
| obr_t * branch_else | |
| } | |
| obr_t * pointer | |
| struct { | |
| const vector_t * sizes | |
| obr_t * array_element | |
| } | |
| vector_t * fields | |
| mpz_t digit | |
| char * object | |
| struct { | |
| char * text | |
| size_t length | |
| } | |
| struct { | |
| char * name | |
| obr_visibility_t visibility | |
| union { | |
| struct { | |
| const vector_t * imports | |
| vector_t * decls | |
| vector_t * init | |
| } | |
| struct { | |
| bool mut | |
| obr_t * type | |
| } | |
| obr_t * value | |
| struct { | |
| obr_t * receiver | |
| const vector_t * params | |
| obr_t * result | |
| vector_t * locals | |
| vector_t * body | |
| } | |
| char * symbol | |
| } | |
| } | |
| }; | |
| union { ... } | 
| obr_kind_t obr_t::kind | 
| obr_visibility_t obr_t::visibility |