PIPS
domain Union Reference

A DOMAIN union describes the structure of a user type. More...

#include <newgen_include.h>

+ Collaboration diagram for domain:

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
 

Detailed Description

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.

Field Documentation

◆ allocated_memory

int(* domain::allocated_memory) (void *)

Definition at line 106 of file newgen_include.h.

Referenced by allocated_memory_leaf_in(), and gen_init_external().

◆ 

◆ 

◆ 

◆ components

◆ constructand

◆ constructor

◆ copy

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().

◆ dimensions

◆ element

◆ 

◆ filename

char* domain::filename

Definition at line 142 of file newgen_include.h.

Referenced by gen_write_spec(), and print_domain().

◆ first

◆ free

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().

◆ 

◆ op

◆ persistant

◆ read

void*(* domain::read) (FILE *, int(*)(void))

Definition at line 102 of file newgen_include.h.

Referenced by gen_init_external(), and read_external().

◆ 

◆ type [1/2]

◆ type [2/2]

enum type_of_domain domain::type

BASIC.

Definition at line 106 of file newgen_include.h.

◆ what

set_type domain::what

Definition at line 125 of file newgen_include.h.

Referenced by gen_copy_set(), and write_simple_in().

◆ write

void(* domain::write) (FILE *, void *)

Definition at line 103 of file newgen_include.h.

Referenced by gen_init_external(), and write_leaf_in().


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