PIPS
|
A DOMAIN union describes the structure of a user type. More...
#include <newgen_include.h>
Data Fields | |
struct { | |
int type | |
EXTERNAL. More... | |
void *(* read )(FILE *, int(*)(void)) | |
void(* write )(FILE *, void *) | |
void(* free )(void *) | |
void *(* copy )(void *) | |
int(* allocated_memory )(void *) | |
} | ex |
struct { | |
enum type_of_domain type | |
BASIC. More... | |
char * constructor | |
int persistant | |
struct gen_binding * constructand | |
} | ba |
struct { | |
int type | |
LIST. More... | |
char * constructor | |
int persistant | |
struct gen_binding * element | |
} | li |
struct { | |
int type | |
SET. More... | |
char * constructor | |
int persistant | |
struct gen_binding * element | |
set_type what | |
} | se |
struct { | |
int type | |
ARRAY. More... | |
char * constructor | |
int persistant | |
struct gen_binding * element | |
struct intlist * dimensions | |
} | ar |
struct { | |
int type | |
CONSTRUCTED. More... | |
enum domain_operator op | |
int first | |
struct domainlist * components | |
} | co |
struct { | |
int type | |
IMPORT (another newgen type, not yet defined) More... | |
char * filename | |
} | im |
A DOMAIN union describes the structure of a user type.
The (STRUCT BINDING *) are used either to point to strings (during the parsing of the specifications), or to gen_bindings (after compilation).
TYPE and CONSTRUCTOR members have to be at the same offset FC, 10/06/1994, set_type in se moved.
common part assumed for all: type common part assumed for ba, li, se, ar: type, constructor, persistant and one gen_binding
Definition at line 99 of file newgen_include.h.
int(* domain::allocated_memory) (void *) |
Definition at line 106 of file newgen_include.h.
Referenced by allocated_memory_leaf_in(), and gen_init_external().
struct { ... } domain::ar |
Referenced by array_own_allocated_memory(), gen_arg(), gen_array(), gen_copy_array(), gen_make_array(), gen_tabulated_fake_object_hack(), gen_trav_simple(), init(), init_array(), init_member(), newgen_argument_type_name(), newgen_type_name(), persistant_simple_in(), print_domain(), reconnect(), shared_simple_in(), and write_simple_in().
struct { ... } domain::ba |
Referenced by allocated_memory_simple_in(), compile(), copy_obj_out(), copy_simple_in(), copy_simple_out(), free_simple_out(), gen_alloc(), gen_and(), gen_arg(), gen_domain(), gen_external_member(), gen_init_external(), gen_member(), gen_or(), gen_read_spec(), gen_size(), gen_trav_obj(), gen_trav_simple(), generate_access_members(), generate_domain(), init(), init_gen_quick_recurse_tables(), init_member(), initialize_domain_DirectDomainsTable(), inline_directly(), new_binding(), newgen_access_name(), newgen_argument_type_name(), newgen_kind_label(), newgen_type_name(), newgen_type_name_close(), persistant_simple_in(), primitive_field(), print_domain(), print_persistant(), quick_multi_recurse_simple_in(), read_external(), reconnect(), shared_simple_in(), sharing_simple_in(), write_obj_in(), write_obj_out(), write_simple_in(), and write_simple_out().
struct { ... } domain::co |
Referenced by compile(), copy_obj_out_constructed(), free_obj_out(), gen_alloc_constructed(), gen_and(), gen_domain(), gen_or(), gen_size(), gen_trav_obj_constructed(), generate_access_members(), generate_arrow(), generate_domain(), generate_make(), generate_struct_members(), generate_union_as_string(), generate_union_type_descriptor(), initialize_domain_DirectDomainsTable(), newgen_type_name(), print_domain(), reconnect(), write_obj_in(), and write_obj_out().
struct domainlist* domain::components |
Definition at line 138 of file newgen_include.h.
Referenced by compile(), copy_obj_out_constructed(), gen_alloc_constructed(), gen_and(), gen_or(), gen_size(), gen_trav_obj_constructed(), generate_access_members(), generate_arrow(), generate_make(), generate_struct_members(), generate_union_as_string(), generate_union_type_descriptor(), initialize_domain_DirectDomainsTable(), print_domain(), and reconnect().
struct gen_binding* domain::constructand |
Definition at line 112 of file newgen_include.h.
Referenced by compile(), gen_external_member(), gen_member(), gen_or(), gen_trav_simple(), init_member(), inline_directly(), newgen_access_name(), newgen_argument_type_name(), newgen_type_name(), primitive_field(), print_domain(), and reconnect().
char* domain::constructor |
Definition at line 110 of file newgen_include.h.
Referenced by gen_and(), gen_arg(), gen_array(), gen_external_member(), gen_list(), gen_member(), gen_or(), gen_set(), generate_access_members(), init(), and print_domain().
void*(* domain::copy) (void *) |
Definition at line 105 of file newgen_include.h.
Referenced by copy_leaf_out(), gen_init_external(), and gen_local_copy_tree().
struct intlist* domain::dimensions |
Definition at line 132 of file newgen_include.h.
Referenced by array_own_allocated_memory(), gen_copy_array(), gen_tabulated_fake_object_hack(), gen_trav_simple(), init(), init_array(), init_member(), print_domain(), and write_simple_in().
struct gen_binding* domain::element |
Definition at line 118 of file newgen_include.h.
Referenced by gen_array(), gen_copy_array(), gen_copy_list(), gen_copy_set(), gen_set(), gen_tabulated_fake_object_hack(), gen_trav_simple(), init(), initialize_domain_DirectDomainsTable(), newgen_argument_type_name(), newgen_type_name(), print_domain(), quick_multi_recurse_simple_in(), and reconnect().
struct { ... } domain::ex |
Referenced by allocated_memory_leaf_in(), copy_leaf_out(), free_leaf_out(), gen_init_external(), read_external(), and write_leaf_in().
char* domain::filename |
Definition at line 142 of file newgen_include.h.
Referenced by gen_write_spec(), and print_domain().
int domain::first |
Definition at line 137 of file newgen_include.h.
Referenced by copy_obj_out_constructed(), gen_alloc_constructed(), gen_or(), gen_trav_obj_constructed(), and reconnect().
void(* domain::free) (void *) |
Definition at line 104 of file newgen_include.h.
Referenced by free_leaf_out(), and gen_init_external().
struct { ... } domain::im |
Referenced by print_domain().
struct { ... } domain::li |
Referenced by gen_arg(), gen_copy_list(), gen_list(), gen_trav_simple(), persistant_simple_in(), print_domain(), reconnect(), and shared_simple_in().
enum domain_operator domain::op |
Definition at line 135 of file newgen_include.h.
Referenced by copy_obj_out_constructed(), free_obj_out(), gen_alloc_constructed(), gen_domain(), gen_size(), gen_trav_obj_constructed(), generate_domain(), newgen_type_name(), print_domain(), reconnect(), write_obj_in(), and write_obj_out().
int domain::persistant |
Definition at line 111 of file newgen_include.h.
Referenced by allocated_memory_simple_in(), copy_simple_in(), gen_copy_list(), persistant_simple_in(), print_persistant(), quick_multi_recurse_simple_in(), and shared_simple_in().
void*(* domain::read) (FILE *, int(*)(void)) |
Definition at line 102 of file newgen_include.h.
Referenced by gen_init_external(), and read_external().
struct { ... } domain::se |
int domain::type |
EXTERNAL.
IMPORT (another newgen type, not yet defined)
CONSTRUCTED.
ARRAY.
SET.
LIST.
Definition at line 101 of file newgen_include.h.
Referenced by allocated_memory_simple_in(), compile(), copy_obj_out(), copy_simple_in(), copy_simple_out(), free_simple_out(), gen_alloc(), gen_arg(), gen_domain(), gen_external_member(), gen_init_external(), gen_member(), gen_or(), gen_read_spec(), gen_size(), gen_trav_obj(), gen_trav_simple(), generate_domain(), init(), init_gen_quick_recurse_tables(), init_member(), initialize_domain_DirectDomainsTable(), inline_directly(), new_binding(), newgen_access_name(), newgen_argument_type_name(), newgen_kind_label(), newgen_type_name(), newgen_type_name_close(), persistant_simple_in(), primitive_field(), print_domain(), quick_multi_recurse_simple_in(), read_external(), reconnect(), shared_simple_in(), sharing_simple_in(), write_obj_in(), write_obj_out(), write_simple_in(), and write_simple_out().
enum type_of_domain domain::type |
BASIC.
Definition at line 106 of file newgen_include.h.
set_type domain::what |
Definition at line 125 of file newgen_include.h.
Referenced by gen_copy_set(), and write_simple_in().
void(* domain::write) (FILE *, void *) |
Definition at line 103 of file newgen_include.h.
Referenced by gen_init_external(), and write_leaf_in().