1 #ifndef _newgen_eole_private_included
2 #define _newgen_eole_private_included
3 #define _gen_eole_private_start 127
10 #if !defined(_newgen_expression_domain_defined_)
11 #define _newgen_expression_domain_defined_
12 #define EXPRESSION_NEWGEN_DOMAIN (expression_domain)
13 #define expression_NEWGEN_DOMAIN (expression_domain)
17 #if !defined(_newgen_entity_domain_defined_)
18 #define _newgen_entity_domain_defined_
19 #define ENTITY_NEWGEN_DOMAIN (entity_domain)
20 #define entity_NEWGEN_DOMAIN (entity_domain)
24 #define assignment_domain (_gen_eole_private_start+0)
25 #if !defined(_newgen_assignment_domain_defined_)
26 #define _newgen_assignment_domain_defined_
27 #define ASSIGNMENT_NEWGEN_DOMAIN (assignment_domain)
28 #define assignment_NEWGEN_DOMAIN (assignment_domain)
32 #define expressionwithlevel_domain (_gen_eole_private_start+1)
33 #if !defined(_newgen_expressionwithlevel_domain_defined_)
34 #define _newgen_expressionwithlevel_domain_defined_
35 #define EXPRESSIONWITHLEVEL_NEWGEN_DOMAIN (expressionwithlevel_domain)
36 #define expressionwithlevel_NEWGEN_DOMAIN (expressionwithlevel_domain)
40 #define function_domain (_gen_eole_private_start+2)
41 #if !defined(_newgen_function_domain_defined_)
42 #define _newgen_function_domain_defined_
43 #define FUNCTION_NEWGEN_DOMAIN (function_domain)
44 #define function_NEWGEN_DOMAIN (function_domain)
48 #define lexpressionwithlevel_domain (_gen_eole_private_start+3)
49 #if !defined(_newgen_lexpressionwithlevel_domain_defined_)
50 #define _newgen_lexpressionwithlevel_domain_defined_
51 #define LEXPRESSIONWITHLEVEL_NEWGEN_DOMAIN (lexpressionwithlevel_domain)
52 #define lexpressionwithlevel_NEWGEN_DOMAIN (lexpressionwithlevel_domain)
56 #define persistant_expression_to_entity_domain (_gen_eole_private_start+4)
57 #if !defined(_newgen_persistant_expression_to_entity_domain_defined_)
58 #define _newgen_persistant_expression_to_entity_domain_defined_
59 #define PERSISTANT_EXPRESSION_TO_ENTITY_NEWGEN_DOMAIN (persistant_expression_to_entity_domain)
60 #define persistant_expression_to_entity_NEWGEN_DOMAIN (persistant_expression_to_entity_domain)
66 #define ASSIGNMENT(x) ((assignment)((x).p))
67 #define assignment_CAST(x) ASSIGNMENT(x)
68 #define ASSIGNMENT_CAST(x) ASSIGNMENT(x)
69 #define ASSIGNMENT_(x) ((x).e)
70 #define ASSIGNMENT_TYPE assignment
71 #define assignment_TYPE assignment
72 #define assignment_undefined ((assignment)gen_chunk_undefined)
73 #define assignment_undefined_p(x) ((x)==assignment_undefined)
80 #define gen_ASSIGNMENT_cons gen_assignment_cons
95 #define assignment_domain_number(x) ((x)->_type_)
96 #define assignment_lhs_(x) assignment_lhs(x)
97 #define assignment_lhs(x) ((x)->_assignment_lhs_)
98 #define assignment_rhs_(x) assignment_rhs(x)
99 #define assignment_rhs(x) ((x)->_assignment_rhs_)
100 #define assignment_dependences_(x) assignment_dependences(x)
101 #define assignment_dependences(x) ((x)->_assignment_dependences_)
105 #define EXPRESSIONWITHLEVEL(x) ((expressionwithlevel)((x).p))
106 #define expressionwithlevel_CAST(x) EXPRESSIONWITHLEVEL(x)
107 #define EXPRESSIONWITHLEVEL_CAST(x) EXPRESSIONWITHLEVEL(x)
108 #define EXPRESSIONWITHLEVEL_(x) ((x).e)
109 #define EXPRESSIONWITHLEVEL_TYPE expressionwithlevel
110 #define expressionwithlevel_TYPE expressionwithlevel
111 #define expressionwithlevel_undefined ((expressionwithlevel)gen_chunk_undefined)
112 #define expressionwithlevel_undefined_p(x) ((x)==expressionwithlevel_undefined)
119 #define gen_EXPRESSIONWITHLEVEL_cons gen_expressionwithlevel_cons
133 #define expressionwithlevel_domain_number(x) ((x)->_type_)
134 #define expressionwithlevel_level_(x) expressionwithlevel_level(x)
135 #define expressionwithlevel_level(x) ((x)->_expressionwithlevel_level_)
136 #define expressionwithlevel_expression_(x) expressionwithlevel_expression(x)
137 #define expressionwithlevel_expression(x) ((x)->_expressionwithlevel_expression_)
141 #define FUNCTION(x) ((function)((x).p))
142 #define function_CAST(x) FUNCTION(x)
143 #define FUNCTION_CAST(x) FUNCTION(x)
144 #define FUNCTION_(x) ((x).e)
145 #define FUNCTION_TYPE function
146 #define function_TYPE function
147 #define function_undefined ((function)gen_chunk_undefined)
148 #define function_undefined_p(x) ((x)==function_undefined)
155 #define gen_FUNCTION_cons gen_function_cons
169 #define function_domain_number(x) ((x)->_type_)
170 #define function_op_(x) function_op(x)
171 #define function_op(x) ((x)->_function_op_)
172 #define function_args_(x) function_args(x)
173 #define function_args(x) ((x)->_function_args_)
177 #define LEXPRESSIONWITHLEVEL(x) ((lexpressionwithlevel)((x).p))
178 #define lexpressionwithlevel_CAST(x) LEXPRESSIONWITHLEVEL(x)
179 #define LEXPRESSIONWITHLEVEL_CAST(x) LEXPRESSIONWITHLEVEL(x)
180 #define LEXPRESSIONWITHLEVEL_(x) ((x).e)
181 #define LEXPRESSIONWITHLEVEL_TYPE lexpressionwithlevel
182 #define lexpressionwithlevel_TYPE lexpressionwithlevel
183 #define lexpressionwithlevel_undefined ((lexpressionwithlevel)gen_chunk_undefined)
184 #define lexpressionwithlevel_undefined_p(x) ((x)==lexpressionwithlevel_undefined)
191 #define gen_LEXPRESSIONWITHLEVEL_cons gen_lexpressionwithlevel_cons
204 #define lexpressionwithlevel_domain_number(x) ((x)->_type_)
205 #define lexpressionwithlevel_list(x) ((x)->_lexpressionwithlevel_holder_)
209 #define PERSISTANT_EXPRESSION_TO_ENTITY(x) ((persistant_expression_to_entity)((x).p))
210 #define persistant_expression_to_entity_CAST(x) PERSISTANT_EXPRESSION_TO_ENTITY(x)
211 #define PERSISTANT_EXPRESSION_TO_ENTITY_CAST(x) PERSISTANT_EXPRESSION_TO_ENTITY(x)
212 #define PERSISTANT_EXPRESSION_TO_ENTITY_(x) ((x).e)
213 #define PERSISTANT_EXPRESSION_TO_ENTITY_TYPE persistant_expression_to_entity
214 #define persistant_expression_to_entity_TYPE persistant_expression_to_entity
215 #define persistant_expression_to_entity_undefined ((persistant_expression_to_entity)gen_chunk_undefined)
216 #define persistant_expression_to_entity_undefined_p(x) ((x)==persistant_expression_to_entity_undefined)
223 #define gen_PERSISTANT_EXPRESSION_TO_ENTITY_cons gen_persistant_expression_to_entity_cons
236 #define persistant_expression_to_entity_domain_number(x) ((x)->_type_)
237 #define persistant_expression_to_entity_hash_table(x) ((x)->_persistant_expression_to_entity_holder_)
238 #define persistant_expression_to_entity_key_type expression
239 #define persistant_expression_to_entity_value_type entity
240 #define PERSISTANT_EXPRESSION_TO_ENTITY_MAP(k,v,c,f) FUNCTION_MAP(persistant_expression_to_entity,p,p,k,v,c,f)
241 #define PERSISTANT_EXPRESSION_TO_ENTITY_FOREACH(k,v,f) FUNCTION_FOREACH(persistant_expression_to_entity,p,p,k,v,f)
248 #define eole_private_spec "\
249 --NEWGEN-START 127\n\
250 import expression from \"ri.newgen\";\n\
251 import entity from \"ri.newgen\";\n\
252 assignment = lhs:function x rhs:function x dependences:entity*;\n\
253 expressionwithlevel = level:entity* x expression:expression;\n\
254 function = op:entity x args:entity*;\n\
255 lexpressionwithlevel = list:expressionwithlevel*;\n\
256 persistant_expression_to_entity = persistant expression:expression -> entity:entity;\n\
expressionwithlevel copy_expressionwithlevel(expressionwithlevel)
EXPRESSIONWITHLEVEL.
void free_assignment(assignment)
void lexpressionwithlevel_assign_contents(lexpressionwithlevel, lexpressionwithlevel)
void extend_persistant_expression_to_entity(persistant_expression_to_entity, expression, entity)
persistant_expression_to_entity make_persistant_expression_to_entity(void)
bool assignment_consistent_p(assignment)
void persistant_expression_to_entity_assign_contents(persistant_expression_to_entity, persistant_expression_to_entity)
bool function_defined_p(function)
bool function_consistent_p(function)
void assignment_assign_contents(assignment, assignment)
function make_function(entity, list)
list gen_assignment_cons(assignment, list)
struct _newgen_struct_persistant_expression_to_entity_ * persistant_expression_to_entity
void write_persistant_expression_to_entity(FILE *, persistant_expression_to_entity)
bool expressionwithlevel_defined_p(expressionwithlevel)
bool persistant_expression_to_entity_defined_p(persistant_expression_to_entity)
void function_assign_contents(function, function)
expressionwithlevel read_expressionwithlevel(FILE *)
lexpressionwithlevel read_lexpressionwithlevel(FILE *)
assignment check_assignment(assignment)
expressionwithlevel check_expressionwithlevel(expressionwithlevel)
void assignment_non_recursive_free(assignment)
list gen_function_cons(function, list)
function copy_function(function)
FUNCTION.
bool expressionwithlevel_consistent_p(expressionwithlevel)
struct _newgen_struct_lexpressionwithlevel_ * lexpressionwithlevel
bool bound_persistant_expression_to_entity_p(persistant_expression_to_entity, expression)
assignment make_assignment(function, function, list)
lexpressionwithlevel copy_lexpressionwithlevel(lexpressionwithlevel)
LEXPRESSIONWITHLEVEL.
void write_lexpressionwithlevel(FILE *, lexpressionwithlevel)
void update_persistant_expression_to_entity(persistant_expression_to_entity, expression, entity)
bool lexpressionwithlevel_defined_p(lexpressionwithlevel)
entity delete_persistant_expression_to_entity(persistant_expression_to_entity, expression)
lexpressionwithlevel make_lexpressionwithlevel(list)
void free_persistant_expression_to_entity(persistant_expression_to_entity)
struct _newgen_struct_assignment_ * assignment
list gen_persistant_expression_to_entity_cons(persistant_expression_to_entity, list)
void function_non_recursive_free(function)
expressionwithlevel make_expressionwithlevel(list, expression)
void free_function(function)
void expressionwithlevel_assign_contents(expressionwithlevel, expressionwithlevel)
entity apply_persistant_expression_to_entity(persistant_expression_to_entity, expression)
void expressionwithlevel_non_recursive_free(expressionwithlevel)
void write_assignment(FILE *, assignment)
persistant_expression_to_entity check_persistant_expression_to_entity(persistant_expression_to_entity)
persistant_expression_to_entity read_persistant_expression_to_entity(FILE *)
assignment copy_assignment(assignment)
ASSIGNMENT.
void persistant_expression_to_entity_non_recursive_free(persistant_expression_to_entity)
void lexpressionwithlevel_non_recursive_free(lexpressionwithlevel)
assignment read_assignment(FILE *)
list gen_expressionwithlevel_cons(expressionwithlevel, list)
struct _newgen_struct_expression_ * expression
function read_function(FILE *)
void free_expressionwithlevel(expressionwithlevel)
lexpressionwithlevel check_lexpressionwithlevel(lexpressionwithlevel)
bool persistant_expression_to_entity_consistent_p(persistant_expression_to_entity)
struct _newgen_struct_entity_ * entity
void write_expressionwithlevel(FILE *, expressionwithlevel)
function check_function(function)
struct _newgen_struct_expressionwithlevel_ * expressionwithlevel
void write_function(FILE *, function)
persistant_expression_to_entity copy_persistant_expression_to_entity(persistant_expression_to_entity)
PERSISTANT_EXPRESSION_TO_ENTITY.
list gen_lexpressionwithlevel_cons(lexpressionwithlevel, list)
bool lexpressionwithlevel_consistent_p(lexpressionwithlevel)
void free_lexpressionwithlevel(lexpressionwithlevel)
bool assignment_defined_p(assignment)
function _assignment_lhs_
function _assignment_rhs_
lhs:function
list _assignment_dependences_
rhs:function
list _expressionwithlevel_level_
expression _expressionwithlevel_expression_
level:entity*
list _function_args_
op:entity
list _lexpressionwithlevel_holder_
hash_table _persistant_expression_to_entity_holder_
The structure used to build lists in NewGen.