1 #ifndef _newgen_cloning_included
2 #define _newgen_cloning_included
3 #define _gen_cloning_start 169
10 #if !defined(_newgen_entity_domain_defined_)
11 #define _newgen_entity_domain_defined_
12 #define ENTITY_NEWGEN_DOMAIN (entity_domain)
13 #define entity_NEWGEN_DOMAIN (entity_domain)
17 #if !defined(_newgen_statement_domain_defined_)
18 #define _newgen_statement_domain_defined_
19 #define STATEMENT_NEWGEN_DOMAIN (statement_domain)
20 #define statement_NEWGEN_DOMAIN (statement_domain)
24 #define clone_context_domain (_gen_cloning_start+0)
25 #if !defined(_newgen_clone_context_domain_defined_)
26 #define _newgen_clone_context_domain_defined_
27 #define CLONE_CONTEXT_NEWGEN_DOMAIN (clone_context_domain)
28 #define clone_context_NEWGEN_DOMAIN (clone_context_domain)
34 #define CLONE_CONTEXT(x) ((clone_context)((x).p))
35 #define clone_context_CAST(x) CLONE_CONTEXT(x)
36 #define CLONE_CONTEXT_CAST(x) CLONE_CONTEXT(x)
37 #define CLONE_CONTEXT_(x) ((x).e)
38 #define CLONE_CONTEXT_TYPE clone_context
39 #define clone_context_TYPE clone_context
40 #define clone_context_undefined ((clone_context)gen_chunk_undefined)
41 #define clone_context_undefined_p(x) ((x)==clone_context_undefined)
48 #define gen_CLONE_CONTEXT_cons gen_clone_context_cons
64 #define clone_context_domain_number(x) ((x)->_type_)
65 #define clone_context_previous_module_(x) clone_context_previous_module(x)
66 #define clone_context_previous_module(x) ((x)->_clone_context_previous_module_)
67 #define clone_context_new_module_(x) clone_context_new_module(x)
68 #define clone_context_new_module(x) ((x)->_clone_context_new_module_)
69 #define clone_context_labels_(x) clone_context_labels(x)
70 #define clone_context_labels(x) ((x)->_clone_context_labels_)
71 #define clone_context_new_module_statement_(x) clone_context_new_module_statement(x)
72 #define clone_context_new_module_statement(x) ((x)->_clone_context_new_module_statement_)
74 #define cloning_spec "\
76 import entity from \"ri.newgen\";\n\
77 import statement from \"ri.newgen\";\n\
78 clone_context = previous_module:entity x new_module:entity x labels:entity* x persistant new_module_statement:statement;\n\
clone_context read_clone_context(FILE *)
void free_clone_context(clone_context)
struct _newgen_struct_statement_ * statement
bool clone_context_defined_p(clone_context)
void write_clone_context(FILE *, clone_context)
clone_context copy_clone_context(clone_context)
CLONE_CONTEXT.
clone_context make_clone_context(entity, entity, list, statement)
clone_context check_clone_context(clone_context)
void clone_context_assign_contents(clone_context, clone_context)
bool clone_context_consistent_p(clone_context)
void clone_context_non_recursive_free(clone_context)
struct _newgen_struct_clone_context_ * clone_context
struct _newgen_struct_entity_ * entity
list gen_clone_context_cons(clone_context, list)
list _clone_context_labels_
new_module:entity
entity _clone_context_previous_module_
entity _clone_context_new_module_
previous_module:entity
statement _clone_context_new_module_statement_
labels:entity*
The structure used to build lists in NewGen.