PIPS
effects.h
Go to the documentation of this file.
1 #ifndef _newgen_effects_included
2 #define _newgen_effects_included
3 #define _gen_effects_start 132
4 /*
5  * THIS FILE HAS BEEN AUTOMATICALLY GENERATED BY NEWGEN.
6  *
7  * PLEASE DO NOT MODIFY IT.
8  */
9 
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)
14 typedef struct _newgen_struct_entity_ * entity;
15 #endif /* _newgen_entity_domain_defined_ */
16 
17 #if !defined(_newgen_reference_domain_defined_)
18 #define _newgen_reference_domain_defined_
19 #define REFERENCE_NEWGEN_DOMAIN (reference_domain)
20 #define reference_NEWGEN_DOMAIN (reference_domain)
22 #endif /* _newgen_reference_domain_defined_ */
23 
24 #if !defined(_newgen_preference_domain_defined_)
25 #define _newgen_preference_domain_defined_
26 #define PREFERENCE_NEWGEN_DOMAIN (preference_domain)
27 #define preference_NEWGEN_DOMAIN (preference_domain)
29 #endif /* _newgen_preference_domain_defined_ */
30 
31 #if !defined(_newgen_expression_domain_defined_)
32 #define _newgen_expression_domain_defined_
33 #define EXPRESSION_NEWGEN_DOMAIN (expression_domain)
34 #define expression_NEWGEN_DOMAIN (expression_domain)
36 #endif /* _newgen_expression_domain_defined_ */
37 
38 #if !defined(_newgen_statement_domain_defined_)
39 #define _newgen_statement_domain_defined_
40 #define STATEMENT_NEWGEN_DOMAIN (statement_domain)
41 #define statement_NEWGEN_DOMAIN (statement_domain)
43 #endif /* _newgen_statement_domain_defined_ */
44 
45 #if !defined(_newgen_Psysteme_domain_defined_)
46 #define _newgen_Psysteme_domain_defined_
47 #define newgen_Psysteme(p) (p) /* old hack compatible */
48 #define PSYSTEME_NEWGEN_EXTERNAL (_gen_effects_start+0)
49 #define PSYSTEME_NEWGEN_DOMAIN (PSYSTEME_NEWGEN_EXTERNAL)
50 #define Psysteme_NEWGEN_DOMAIN (PSYSTEME_NEWGEN_EXTERNAL)
51 #endif /* _newgen_Psysteme_domain_defined_ */
52 
53 #define action_kind_domain (_gen_effects_start+1)
54 #if !defined(_newgen_action_kind_domain_defined_)
55 #define _newgen_action_kind_domain_defined_
56 #define ACTION_KIND_NEWGEN_DOMAIN (action_kind_domain)
57 #define action_kind_NEWGEN_DOMAIN (action_kind_domain)
59 #endif /* _newgen_action_kind_domain_defined_ */
60 
61 #define action_domain (_gen_effects_start+2)
62 #if !defined(_newgen_action_domain_defined_)
63 #define _newgen_action_domain_defined_
64 #define ACTION_NEWGEN_DOMAIN (action_domain)
65 #define action_NEWGEN_DOMAIN (action_domain)
66 typedef struct _newgen_struct_action_ * action;
67 #endif /* _newgen_action_domain_defined_ */
68 
69 #define approximation_domain (_gen_effects_start+3)
70 #if !defined(_newgen_approximation_domain_defined_)
71 #define _newgen_approximation_domain_defined_
72 #define APPROXIMATION_NEWGEN_DOMAIN (approximation_domain)
73 #define approximation_NEWGEN_DOMAIN (approximation_domain)
75 #endif /* _newgen_approximation_domain_defined_ */
76 
77 #define cell_interpretation_domain (_gen_effects_start+4)
78 #if !defined(_newgen_cell_interpretation_domain_defined_)
79 #define _newgen_cell_interpretation_domain_defined_
80 #define CELL_INTERPRETATION_NEWGEN_DOMAIN (cell_interpretation_domain)
81 #define cell_interpretation_NEWGEN_DOMAIN (cell_interpretation_domain)
83 #endif /* _newgen_cell_interpretation_domain_defined_ */
84 
85 #define cell_domain (_gen_effects_start+5)
86 #if !defined(_newgen_cell_domain_defined_)
87 #define _newgen_cell_domain_defined_
88 #define CELL_NEWGEN_DOMAIN (cell_domain)
89 #define cell_NEWGEN_DOMAIN (cell_domain)
90 typedef struct _newgen_struct_cell_ * cell;
91 #endif /* _newgen_cell_domain_defined_ */
92 
93 #define cell_relation_domain (_gen_effects_start+6)
94 #if !defined(_newgen_cell_relation_domain_defined_)
95 #define _newgen_cell_relation_domain_defined_
96 #define CELL_RELATION_NEWGEN_DOMAIN (cell_relation_domain)
97 #define cell_relation_NEWGEN_DOMAIN (cell_relation_domain)
99 #endif /* _newgen_cell_relation_domain_defined_ */
100 
101 #define cell_relations_domain (_gen_effects_start+7)
102 #if !defined(_newgen_cell_relations_domain_defined_)
103 #define _newgen_cell_relations_domain_defined_
104 #define CELL_RELATIONS_NEWGEN_DOMAIN (cell_relations_domain)
105 #define cell_relations_NEWGEN_DOMAIN (cell_relations_domain)
107 #endif /* _newgen_cell_relations_domain_defined_ */
108 
109 #define descriptor_domain (_gen_effects_start+8)
110 #if !defined(_newgen_descriptor_domain_defined_)
111 #define _newgen_descriptor_domain_defined_
112 #define DESCRIPTOR_NEWGEN_DOMAIN (descriptor_domain)
113 #define descriptor_NEWGEN_DOMAIN (descriptor_domain)
115 #endif /* _newgen_descriptor_domain_defined_ */
116 
117 #define effect_domain (_gen_effects_start+9)
118 #if !defined(_newgen_effect_domain_defined_)
119 #define _newgen_effect_domain_defined_
120 #define EFFECT_NEWGEN_DOMAIN (effect_domain)
121 #define effect_NEWGEN_DOMAIN (effect_domain)
123 #endif /* _newgen_effect_domain_defined_ */
124 
125 #define effects_classes_domain (_gen_effects_start+10)
126 #if !defined(_newgen_effects_classes_domain_defined_)
127 #define _newgen_effects_classes_domain_defined_
128 #define EFFECTS_CLASSES_NEWGEN_DOMAIN (effects_classes_domain)
129 #define effects_classes_NEWGEN_DOMAIN (effects_classes_domain)
131 #endif /* _newgen_effects_classes_domain_defined_ */
132 
133 #define effects_domain (_gen_effects_start+11)
134 #if !defined(_newgen_effects_domain_defined_)
135 #define _newgen_effects_domain_defined_
136 #define EFFECTS_NEWGEN_DOMAIN (effects_domain)
137 #define effects_NEWGEN_DOMAIN (effects_domain)
139 #endif /* _newgen_effects_domain_defined_ */
140 
141 #define entity_effects_domain (_gen_effects_start+12)
142 #if !defined(_newgen_entity_effects_domain_defined_)
143 #define _newgen_entity_effects_domain_defined_
144 #define ENTITY_EFFECTS_NEWGEN_DOMAIN (entity_effects_domain)
145 #define entity_effects_NEWGEN_DOMAIN (entity_effects_domain)
147 #endif /* _newgen_entity_effects_domain_defined_ */
148 
149 #define gap_domain (_gen_effects_start+13)
150 #if !defined(_newgen_gap_domain_defined_)
151 #define _newgen_gap_domain_defined_
152 #define GAP_NEWGEN_DOMAIN (gap_domain)
153 #define gap_NEWGEN_DOMAIN (gap_domain)
154 typedef struct _newgen_struct_gap_ * gap;
155 #endif /* _newgen_gap_domain_defined_ */
156 
157 #define interpreted_cell_domain (_gen_effects_start+14)
158 #if !defined(_newgen_interpreted_cell_domain_defined_)
159 #define _newgen_interpreted_cell_domain_defined_
160 #define INTERPRETED_CELL_NEWGEN_DOMAIN (interpreted_cell_domain)
161 #define interpreted_cell_NEWGEN_DOMAIN (interpreted_cell_domain)
163 #endif /* _newgen_interpreted_cell_domain_defined_ */
164 
165 #define path_selector_domain (_gen_effects_start+15)
166 #if !defined(_newgen_path_selector_domain_defined_)
167 #define _newgen_path_selector_domain_defined_
168 #define PATH_SELECTOR_NEWGEN_DOMAIN (path_selector_domain)
169 #define path_selector_NEWGEN_DOMAIN (path_selector_domain)
171 #endif /* _newgen_path_selector_domain_defined_ */
172 
173 #define path_selectors_domain (_gen_effects_start+16)
174 #if !defined(_newgen_path_selectors_domain_defined_)
175 #define _newgen_path_selectors_domain_defined_
176 #define PATH_SELECTORS_NEWGEN_DOMAIN (path_selectors_domain)
177 #define path_selectors_NEWGEN_DOMAIN (path_selectors_domain)
179 #endif /* _newgen_path_selectors_domain_defined_ */
180 
181 #define persistant_expression_to_effects_domain (_gen_effects_start+17)
182 #if !defined(_newgen_persistant_expression_to_effects_domain_defined_)
183 #define _newgen_persistant_expression_to_effects_domain_defined_
184 #define PERSISTANT_EXPRESSION_TO_EFFECTS_NEWGEN_DOMAIN (persistant_expression_to_effects_domain)
185 #define persistant_expression_to_effects_NEWGEN_DOMAIN (persistant_expression_to_effects_domain)
187 #endif /* _newgen_persistant_expression_to_effects_domain_defined_ */
188 
189 #define recursive_selector_domain (_gen_effects_start+18)
190 #if !defined(_newgen_recursive_selector_domain_defined_)
191 #define _newgen_recursive_selector_domain_defined_
192 #define RECURSIVE_SELECTOR_NEWGEN_DOMAIN (recursive_selector_domain)
193 #define recursive_selector_NEWGEN_DOMAIN (recursive_selector_domain)
195 #endif /* _newgen_recursive_selector_domain_defined_ */
196 
197 #define statement_cell_relations_domain (_gen_effects_start+19)
198 #if !defined(_newgen_statement_cell_relations_domain_defined_)
199 #define _newgen_statement_cell_relations_domain_defined_
200 #define STATEMENT_CELL_RELATIONS_NEWGEN_DOMAIN (statement_cell_relations_domain)
201 #define statement_cell_relations_NEWGEN_DOMAIN (statement_cell_relations_domain)
203 #endif /* _newgen_statement_cell_relations_domain_defined_ */
204 
205 #define statement_effects_domain (_gen_effects_start+20)
206 #if !defined(_newgen_statement_effects_domain_defined_)
207 #define _newgen_statement_effects_domain_defined_
208 #define STATEMENT_EFFECTS_NEWGEN_DOMAIN (statement_effects_domain)
209 #define statement_effects_NEWGEN_DOMAIN (statement_effects_domain)
211 #endif /* _newgen_statement_effects_domain_defined_ */
212 
213 
214 /* ACTION_KIND
215  */
216 #define ACTION_KIND(x) ((action_kind)((x).p))
217 #define action_kind_CAST(x) ACTION_KIND(x)
218 #define ACTION_KIND_CAST(x) ACTION_KIND(x)
219 #define ACTION_KIND_(x) ((x).e)
220 #define ACTION_KIND_TYPE action_kind
221 #define action_kind_TYPE action_kind
222 #define action_kind_undefined ((action_kind)gen_chunk_undefined)
223 #define action_kind_undefined_p(x) ((x)==action_kind_undefined)
224 
226 extern void free_action_kind(action_kind);
230 #define gen_ACTION_KIND_cons gen_action_kind_cons
234 extern void write_action_kind(FILE*, action_kind);
235 extern action_kind read_action_kind(FILE*);
240 };
241 extern string action_kind_tag_as_string(enum action_kind_utype);
242 extern action_kind make_action_kind(enum action_kind_utype, void *);
246 
250  union {
251  gen_chunk _action_kind_store_; /* store:unit */
252  gen_chunk _action_kind_environment_; /* environment:unit */
253  gen_chunk _action_kind_type_declaration_; /* type_declaration:unit */
255 };
256 
257 #define action_kind_domain_number(x) ((x)->_type_)
258 #define action_kind_tag(x) ((x)->_action_kind_tag__)
259 #define action_kind_store_p(x) (action_kind_tag(x)==is_action_kind_store)
260 #define action_kind_store_(x) action_kind_store(x) /* old hack compatible */
261 #define action_kind_store(x) ((x)->_action_kind_union_._action_kind_store_.u)
262 #define action_kind_environment_p(x) (action_kind_tag(x)==is_action_kind_environment)
263 #define action_kind_environment_(x) action_kind_environment(x) /* old hack compatible */
264 #define action_kind_environment(x) ((x)->_action_kind_union_._action_kind_environment_.u)
265 #define action_kind_type_declaration_p(x) (action_kind_tag(x)==is_action_kind_type_declaration)
266 #define action_kind_type_declaration_(x) action_kind_type_declaration(x) /* old hack compatible */
267 #define action_kind_type_declaration(x) ((x)->_action_kind_union_._action_kind_type_declaration_.u)
268 
269 /* ACTION
270  */
271 #define ACTION(x) ((action)((x).p))
272 #define action_CAST(x) ACTION(x)
273 #define ACTION_CAST(x) ACTION(x)
274 #define ACTION_(x) ((x).e)
275 #define ACTION_TYPE action
276 #define action_TYPE action
277 #define action_undefined ((action)gen_chunk_undefined)
278 #define action_undefined_p(x) ((x)==action_undefined)
279 
280 extern action copy_action(action);
281 extern void free_action(action);
282 extern action check_action(action);
283 extern bool action_consistent_p(action);
284 extern bool action_defined_p(action);
285 #define gen_ACTION_cons gen_action_cons
287 extern void action_assign_contents(action, action);
288 extern void action_non_recursive_free(action);
289 extern void write_action(FILE*, action);
290 extern action read_action(FILE*);
294 };
295 extern string action_tag_as_string(enum action_utype);
296 extern action make_action(enum action_utype, void *);
299 
303  union {
304  action_kind _action_read_; /* read:action_kind */
305  action_kind _action_write_; /* write:action_kind */
307 };
308 
309 #define action_domain_number(x) ((x)->_type_)
310 #define action_tag(x) ((x)->_action_tag__)
311 #define action_read_p(x) (action_tag(x)==is_action_read)
312 #define action_read_(x) action_read(x) /* old hack compatible */
313 #define action_read(x) ((x)->_action_union_._action_read_)
314 #define action_write_p(x) (action_tag(x)==is_action_write)
315 #define action_write_(x) action_write(x) /* old hack compatible */
316 #define action_write(x) ((x)->_action_union_._action_write_)
317 
318 /* APPROXIMATION
319  */
320 #define APPROXIMATION(x) ((approximation)((x).p))
321 #define approximation_CAST(x) APPROXIMATION(x)
322 #define APPROXIMATION_CAST(x) APPROXIMATION(x)
323 #define APPROXIMATION_(x) ((x).e)
324 #define APPROXIMATION_TYPE approximation
325 #define approximation_TYPE approximation
326 #define approximation_undefined ((approximation)gen_chunk_undefined)
327 #define approximation_undefined_p(x) ((x)==approximation_undefined)
328 
330 extern void free_approximation(approximation);
334 #define gen_APPROXIMATION_cons gen_approximation_cons
338 extern void write_approximation(FILE*, approximation);
339 extern approximation read_approximation(FILE*);
344 };
350 
354  union {
359 };
360 
361 #define approximation_domain_number(x) ((x)->_type_)
362 #define approximation_tag(x) ((x)->_approximation_tag__)
363 #define approximation_may_p(x) (approximation_tag(x)==is_approximation_may)
364 #define approximation_may_(x) approximation_may(x) /* old hack compatible */
365 #define approximation_may(x) ((x)->_approximation_union_._approximation_may_.u)
366 #define approximation_must_p(x) (approximation_tag(x)==is_approximation_must)
367 #define approximation_must_(x) approximation_must(x) /* old hack compatible */
368 #define approximation_must(x) ((x)->_approximation_union_._approximation_must_.u)
369 #define approximation_exact_p(x) (approximation_tag(x)==is_approximation_exact)
370 #define approximation_exact_(x) approximation_exact(x) /* old hack compatible */
371 #define approximation_exact(x) ((x)->_approximation_union_._approximation_exact_.u)
372 
373 /* CELL_INTERPRETATION
374  */
375 #define CELL_INTERPRETATION(x) ((cell_interpretation)((x).p))
376 #define cell_interpretation_CAST(x) CELL_INTERPRETATION(x)
377 #define CELL_INTERPRETATION_CAST(x) CELL_INTERPRETATION(x)
378 #define CELL_INTERPRETATION_(x) ((x).e)
379 #define CELL_INTERPRETATION_TYPE cell_interpretation
380 #define cell_interpretation_TYPE cell_interpretation
381 #define cell_interpretation_undefined ((cell_interpretation)gen_chunk_undefined)
382 #define cell_interpretation_undefined_p(x) ((x)==cell_interpretation_undefined)
383 
389 #define gen_CELL_INTERPRETATION_cons gen_cell_interpretation_cons
398 };
403 
407  union {
411 };
412 
413 #define cell_interpretation_domain_number(x) ((x)->_type_)
414 #define cell_interpretation_tag(x) ((x)->_cell_interpretation_tag__)
415 #define cell_interpretation_value_of_p(x) (cell_interpretation_tag(x)==is_cell_interpretation_value_of)
416 #define cell_interpretation_value_of_(x) cell_interpretation_value_of(x) /* old hack compatible */
417 #define cell_interpretation_value_of(x) ((x)->_cell_interpretation_union_._cell_interpretation_value_of_.u)
418 #define cell_interpretation_address_of_p(x) (cell_interpretation_tag(x)==is_cell_interpretation_address_of)
419 #define cell_interpretation_address_of_(x) cell_interpretation_address_of(x) /* old hack compatible */
420 #define cell_interpretation_address_of(x) ((x)->_cell_interpretation_union_._cell_interpretation_address_of_.u)
421 
422 /* CELL
423  */
424 #define CELL(x) ((cell)((x).p))
425 #define cell_CAST(x) CELL(x)
426 #define CELL_CAST(x) CELL(x)
427 #define CELL_(x) ((x).e)
428 #define CELL_TYPE cell
429 #define cell_TYPE cell
430 #define cell_undefined ((cell)gen_chunk_undefined)
431 #define cell_undefined_p(x) ((x)==cell_undefined)
432 
433 extern cell copy_cell(cell);
434 extern void free_cell(cell);
435 extern cell check_cell(cell);
436 extern bool cell_consistent_p(cell);
437 extern bool cell_defined_p(cell);
438 #define gen_CELL_cons gen_cell_cons
439 extern list gen_cell_cons(cell, list);
440 extern void cell_assign_contents(cell, cell);
441 extern void cell_non_recursive_free(cell);
442 extern void write_cell(FILE*, cell);
443 extern cell read_cell(FILE*);
448 };
449 extern string cell_tag_as_string(enum cell_utype);
450 extern cell make_cell(enum cell_utype, void *);
453 extern cell make_cell_gap(gap);
454 
457  enum cell_utype _cell_tag__;
458  union {
459  reference _cell_reference_; /* reference:reference */
460  preference _cell_preference_; /* preference:preference */
461  gap _cell_gap_; /* gap:gap */
463 };
464 
465 #define cell_domain_number(x) ((x)->_type_)
466 #define cell_tag(x) ((x)->_cell_tag__)
467 #define cell_reference_p(x) (cell_tag(x)==is_cell_reference)
468 #define cell_reference_(x) cell_reference(x) /* old hack compatible */
469 #define cell_reference(x) ((x)->_cell_union_._cell_reference_)
470 #define cell_preference_p(x) (cell_tag(x)==is_cell_preference)
471 #define cell_preference_(x) cell_preference(x) /* old hack compatible */
472 #define cell_preference(x) ((x)->_cell_union_._cell_preference_)
473 #define cell_gap_p(x) (cell_tag(x)==is_cell_gap)
474 #define cell_gap_(x) cell_gap(x) /* old hack compatible */
475 #define cell_gap(x) ((x)->_cell_union_._cell_gap_)
476 
477 /* CELL_RELATION
478  */
479 #define CELL_RELATION(x) ((cell_relation)((x).p))
480 #define cell_relation_CAST(x) CELL_RELATION(x)
481 #define CELL_RELATION_CAST(x) CELL_RELATION(x)
482 #define CELL_RELATION_(x) ((x).e)
483 #define CELL_RELATION_TYPE cell_relation
484 #define cell_relation_TYPE cell_relation
485 #define cell_relation_undefined ((cell_relation)gen_chunk_undefined)
486 #define cell_relation_undefined_p(x) ((x)==cell_relation_undefined)
487 
489 extern void free_cell_relation(cell_relation);
493 #define gen_CELL_RELATION_cons gen_cell_relation_cons
497 extern void write_cell_relation(FILE*, cell_relation);
498 extern cell_relation read_cell_relation(FILE*);
500 
503  interpreted_cell _cell_relation_first_; /* first:interpreted_cell */
504  interpreted_cell _cell_relation_second_; /* second:interpreted_cell */
505  approximation _cell_relation_approximation_; /* approximation:approximation */
506  descriptor _cell_relation_descriptor_; /* descriptor:descriptor */
507 };
508 
509 #define cell_relation_domain_number(x) ((x)->_type_)
510 #define cell_relation_first_(x) cell_relation_first(x) /* old hack compatible */
511 #define cell_relation_first(x) ((x)->_cell_relation_first_)
512 #define cell_relation_second_(x) cell_relation_second(x) /* old hack compatible */
513 #define cell_relation_second(x) ((x)->_cell_relation_second_)
514 #define cell_relation_approximation_(x) cell_relation_approximation(x) /* old hack compatible */
515 #define cell_relation_approximation(x) ((x)->_cell_relation_approximation_)
516 #define cell_relation_descriptor_(x) cell_relation_descriptor(x) /* old hack compatible */
517 #define cell_relation_descriptor(x) ((x)->_cell_relation_descriptor_)
518 
519 /* CELL_RELATIONS
520  */
521 #define CELL_RELATIONS(x) ((cell_relations)((x).p))
522 #define cell_relations_CAST(x) CELL_RELATIONS(x)
523 #define CELL_RELATIONS_CAST(x) CELL_RELATIONS(x)
524 #define CELL_RELATIONS_(x) ((x).e)
525 #define CELL_RELATIONS_TYPE cell_relations
526 #define cell_relations_TYPE cell_relations
527 #define cell_relations_undefined ((cell_relations)gen_chunk_undefined)
528 #define cell_relations_undefined_p(x) ((x)==cell_relations_undefined)
529 
535 #define gen_CELL_RELATIONS_cons gen_cell_relations_cons
539 extern void write_cell_relations(FILE*, cell_relations);
540 extern cell_relations read_cell_relations(FILE*);
542 
546 };
547 
548 #define cell_relations_domain_number(x) ((x)->_type_)
549 #define cell_relations_list(x) ((x)->_cell_relations_holder_)
550 
551 /* DESCRIPTOR
552  */
553 #define DESCRIPTOR(x) ((descriptor)((x).p))
554 #define descriptor_CAST(x) DESCRIPTOR(x)
555 #define DESCRIPTOR_CAST(x) DESCRIPTOR(x)
556 #define DESCRIPTOR_(x) ((x).e)
557 #define DESCRIPTOR_TYPE descriptor
558 #define descriptor_TYPE descriptor
559 #define descriptor_undefined ((descriptor)gen_chunk_undefined)
560 #define descriptor_undefined_p(x) ((x)==descriptor_undefined)
561 
563 extern void free_descriptor(descriptor);
566 extern bool descriptor_defined_p(descriptor);
567 #define gen_DESCRIPTOR_cons gen_descriptor_cons
571 extern void write_descriptor(FILE*, descriptor);
572 extern descriptor read_descriptor(FILE*);
577 };
578 extern string descriptor_tag_as_string(enum descriptor_utype);
579 extern descriptor make_descriptor(enum descriptor_utype, void *);
582 extern descriptor make_descriptor_none(void);
583 
587  union {
588  list _descriptor_convexunion_; /* convexunion:Psysteme* */
589  Psysteme _descriptor_convex_; /* convex:Psysteme */
590  gen_chunk _descriptor_none_; /* none:unit */
592 };
593 
594 #define descriptor_domain_number(x) ((x)->_type_)
595 #define descriptor_tag(x) ((x)->_descriptor_tag__)
596 #define descriptor_convexunion_p(x) (descriptor_tag(x)==is_descriptor_convexunion)
597 #define descriptor_convexunion_(x) descriptor_convexunion(x) /* old hack compatible */
598 #define descriptor_convexunion(x) ((x)->_descriptor_union_._descriptor_convexunion_)
599 #define descriptor_convex_p(x) (descriptor_tag(x)==is_descriptor_convex)
600 #define descriptor_convex_(x) descriptor_convex(x) /* old hack compatible */
601 #define descriptor_convex(x) ((x)->_descriptor_union_._descriptor_convex_)
602 #define descriptor_none_p(x) (descriptor_tag(x)==is_descriptor_none)
603 #define descriptor_none_(x) descriptor_none(x) /* old hack compatible */
604 #define descriptor_none(x) ((x)->_descriptor_union_._descriptor_none_.u)
605 
606 /* EFFECT
607  */
608 #define EFFECT(x) ((effect)((x).p))
609 #define effect_CAST(x) EFFECT(x)
610 #define EFFECT_CAST(x) EFFECT(x)
611 #define EFFECT_(x) ((x).e)
612 #define EFFECT_TYPE effect
613 #define effect_TYPE effect
614 #define effect_undefined ((effect)gen_chunk_undefined)
615 #define effect_undefined_p(x) ((x)==effect_undefined)
616 
617 extern effect copy_effect(effect);
618 extern void free_effect(effect);
619 extern effect check_effect(effect);
620 extern bool effect_consistent_p(effect);
621 extern bool effect_defined_p(effect);
622 #define gen_EFFECT_cons gen_effect_cons
624 extern void effect_assign_contents(effect, effect);
625 extern void effect_non_recursive_free(effect);
626 extern void write_effect(FILE*, effect);
627 extern effect read_effect(FILE*);
629 
632  cell _effect_cell_; /* cell:cell */
633  action _effect_action_; /* action:action */
634  approximation _effect_approximation_; /* approximation:approximation */
635  descriptor _effect_descriptor_; /* descriptor:descriptor */
636 };
637 
638 #define effect_domain_number(x) ((x)->_type_)
639 #define effect_cell_(x) effect_cell(x) /* old hack compatible */
640 #define effect_cell(x) ((x)->_effect_cell_)
641 #define effect_action_(x) effect_action(x) /* old hack compatible */
642 #define effect_action(x) ((x)->_effect_action_)
643 #define effect_approximation_(x) effect_approximation(x) /* old hack compatible */
644 #define effect_approximation(x) ((x)->_effect_approximation_)
645 #define effect_descriptor_(x) effect_descriptor(x) /* old hack compatible */
646 #define effect_descriptor(x) ((x)->_effect_descriptor_)
647 
648 /* EFFECTS_CLASSES
649  */
650 #define EFFECTS_CLASSES(x) ((effects_classes)((x).p))
651 #define effects_classes_CAST(x) EFFECTS_CLASSES(x)
652 #define EFFECTS_CLASSES_CAST(x) EFFECTS_CLASSES(x)
653 #define EFFECTS_CLASSES_(x) ((x).e)
654 #define EFFECTS_CLASSES_TYPE effects_classes
655 #define effects_classes_TYPE effects_classes
656 #define effects_classes_undefined ((effects_classes)gen_chunk_undefined)
657 #define effects_classes_undefined_p(x) ((x)==effects_classes_undefined)
658 
664 #define gen_EFFECTS_CLASSES_cons gen_effects_classes_cons
668 extern void write_effects_classes(FILE*, effects_classes);
671 
675 };
676 
677 #define effects_classes_domain_number(x) ((x)->_type_)
678 #define effects_classes_classes(x) ((x)->_effects_classes_holder_)
679 
680 /* EFFECTS
681  */
682 #define EFFECTS(x) ((effects)((x).p))
683 #define effects_CAST(x) EFFECTS(x)
684 #define EFFECTS_CAST(x) EFFECTS(x)
685 #define EFFECTS_(x) ((x).e)
686 #define EFFECTS_TYPE effects
687 #define effects_TYPE effects
688 #define effects_undefined ((effects)gen_chunk_undefined)
689 #define effects_undefined_p(x) ((x)==effects_undefined)
690 
692 extern void free_effects(effects);
694 extern bool effects_consistent_p(effects);
695 extern bool effects_defined_p(effects);
696 #define gen_EFFECTS_cons gen_effects_cons
700 extern void write_effects(FILE*, effects);
701 extern effects read_effects(FILE*);
702 extern effects make_effects(list);
703 
707 };
708 
709 #define effects_domain_number(x) ((x)->_type_)
710 #define effects_effects(x) ((x)->_effects_holder_)
711 
712 /* ENTITY_EFFECTS
713  */
714 #define ENTITY_EFFECTS(x) ((entity_effects)((x).p))
715 #define entity_effects_CAST(x) ENTITY_EFFECTS(x)
716 #define ENTITY_EFFECTS_CAST(x) ENTITY_EFFECTS(x)
717 #define ENTITY_EFFECTS_(x) ((x).e)
718 #define ENTITY_EFFECTS_TYPE entity_effects
719 #define entity_effects_TYPE entity_effects
720 #define entity_effects_undefined ((entity_effects)gen_chunk_undefined)
721 #define entity_effects_undefined_p(x) ((x)==entity_effects_undefined)
722 
728 #define gen_ENTITY_EFFECTS_cons gen_entity_effects_cons
732 extern void write_entity_effects(FILE*, entity_effects);
733 extern entity_effects read_entity_effects(FILE*);
735 
739 };
740 
741 #define entity_effects_domain_number(x) ((x)->_type_)
742 #define entity_effects_hash_table(x) ((x)->_entity_effects_holder_)
743 #define entity_effects_key_type entity
744 #define entity_effects_value_type effects
745 #define ENTITY_EFFECTS_MAP(k,v,c,f) FUNCTION_MAP(entity_effects,p,p,k,v,c,f)
746 #define ENTITY_EFFECTS_FOREACH(k,v,f) FUNCTION_FOREACH(entity_effects,p,p,k,v,f)
752 
753 /* GAP
754  */
755 #define GAP(x) ((gap)((x).p))
756 #define gap_CAST(x) GAP(x)
757 #define GAP_CAST(x) GAP(x)
758 #define GAP_(x) ((x).e)
759 #define GAP_TYPE gap
760 #define gap_TYPE gap
761 #define gap_undefined ((gap)gen_chunk_undefined)
762 #define gap_undefined_p(x) ((x)==gap_undefined)
763 
764 extern gap copy_gap(gap);
765 extern void free_gap(gap);
766 extern gap check_gap(gap);
767 extern bool gap_consistent_p(gap);
768 extern bool gap_defined_p(gap);
769 #define gen_GAP_cons gen_gap_cons
770 extern list gen_gap_cons(gap, list);
771 extern void gap_assign_contents(gap, gap);
772 extern void gap_non_recursive_free(gap);
773 extern void write_gap(FILE*, gap);
774 extern gap read_gap(FILE*);
776 
779  entity _gap_variable_; /* variable:entity */
780  path_selectors _gap_path_selectors_; /* path_selectors:path_selectors */
781 };
782 
783 #define gap_domain_number(x) ((x)->_type_)
784 #define gap_variable_(x) gap_variable(x) /* old hack compatible */
785 #define gap_variable(x) ((x)->_gap_variable_)
786 #define gap_path_selectors_(x) gap_path_selectors(x) /* old hack compatible */
787 #define gap_path_selectors(x) ((x)->_gap_path_selectors_)
788 
789 /* INTERPRETED_CELL
790  */
791 #define INTERPRETED_CELL(x) ((interpreted_cell)((x).p))
792 #define interpreted_cell_CAST(x) INTERPRETED_CELL(x)
793 #define INTERPRETED_CELL_CAST(x) INTERPRETED_CELL(x)
794 #define INTERPRETED_CELL_(x) ((x).e)
795 #define INTERPRETED_CELL_TYPE interpreted_cell
796 #define interpreted_cell_TYPE interpreted_cell
797 #define interpreted_cell_undefined ((interpreted_cell)gen_chunk_undefined)
798 #define interpreted_cell_undefined_p(x) ((x)==interpreted_cell_undefined)
799 
805 #define gen_INTERPRETED_CELL_cons gen_interpreted_cell_cons
809 extern void write_interpreted_cell(FILE*, interpreted_cell);
812 
815  cell _interpreted_cell_cell_; /* cell:cell */
816  cell_interpretation _interpreted_cell_cell_interpretation_; /* cell_interpretation:cell_interpretation */
817 };
818 
819 #define interpreted_cell_domain_number(x) ((x)->_type_)
820 #define interpreted_cell_cell_(x) interpreted_cell_cell(x) /* old hack compatible */
821 #define interpreted_cell_cell(x) ((x)->_interpreted_cell_cell_)
822 #define interpreted_cell_cell_interpretation_(x) interpreted_cell_cell_interpretation(x) /* old hack compatible */
823 #define interpreted_cell_cell_interpretation(x) ((x)->_interpreted_cell_cell_interpretation_)
824 
825 /* PATH_SELECTOR
826  */
827 #define PATH_SELECTOR(x) ((path_selector)((x).p))
828 #define path_selector_CAST(x) PATH_SELECTOR(x)
829 #define PATH_SELECTOR_CAST(x) PATH_SELECTOR(x)
830 #define PATH_SELECTOR_(x) ((x).e)
831 #define PATH_SELECTOR_TYPE path_selector
832 #define path_selector_TYPE path_selector
833 #define path_selector_undefined ((path_selector)gen_chunk_undefined)
834 #define path_selector_undefined_p(x) ((x)==path_selector_undefined)
835 
837 extern void free_path_selector(path_selector);
841 #define gen_PATH_SELECTOR_cons gen_path_selector_cons
845 extern void write_path_selector(FILE*, path_selector);
846 extern path_selector read_path_selector(FILE*);
850 };
855 
859  union {
860  expression _path_selector_expression_; /* expression:expression */
861  recursive_selector _path_selector_recursive_selector_; /* recursive_selector:recursive_selector */
863 };
864 
865 #define path_selector_domain_number(x) ((x)->_type_)
866 #define path_selector_tag(x) ((x)->_path_selector_tag__)
867 #define path_selector_expression_p(x) (path_selector_tag(x)==is_path_selector_expression)
868 #define path_selector_expression_(x) path_selector_expression(x) /* old hack compatible */
869 #define path_selector_expression(x) ((x)->_path_selector_union_._path_selector_expression_)
870 #define path_selector_recursive_selector_p(x) (path_selector_tag(x)==is_path_selector_recursive_selector)
871 #define path_selector_recursive_selector_(x) path_selector_recursive_selector(x) /* old hack compatible */
872 #define path_selector_recursive_selector(x) ((x)->_path_selector_union_._path_selector_recursive_selector_)
873 
874 /* PATH_SELECTORS
875  */
876 #define PATH_SELECTORS(x) ((path_selectors)((x).p))
877 #define path_selectors_CAST(x) PATH_SELECTORS(x)
878 #define PATH_SELECTORS_CAST(x) PATH_SELECTORS(x)
879 #define PATH_SELECTORS_(x) ((x).e)
880 #define PATH_SELECTORS_TYPE path_selectors
881 #define path_selectors_TYPE path_selectors
882 #define path_selectors_undefined ((path_selectors)gen_chunk_undefined)
883 #define path_selectors_undefined_p(x) ((x)==path_selectors_undefined)
884 
890 #define gen_PATH_SELECTORS_cons gen_path_selectors_cons
894 extern void write_path_selectors(FILE*, path_selectors);
895 extern path_selectors read_path_selectors(FILE*);
897 
901 };
902 
903 #define path_selectors_domain_number(x) ((x)->_type_)
904 #define path_selectors_path_selector(x) ((x)->_path_selectors_holder_)
905 
906 /* PERSISTANT_EXPRESSION_TO_EFFECTS
907  */
908 #define PERSISTANT_EXPRESSION_TO_EFFECTS(x) ((persistant_expression_to_effects)((x).p))
909 #define persistant_expression_to_effects_CAST(x) PERSISTANT_EXPRESSION_TO_EFFECTS(x)
910 #define PERSISTANT_EXPRESSION_TO_EFFECTS_CAST(x) PERSISTANT_EXPRESSION_TO_EFFECTS(x)
911 #define PERSISTANT_EXPRESSION_TO_EFFECTS_(x) ((x).e)
912 #define PERSISTANT_EXPRESSION_TO_EFFECTS_TYPE persistant_expression_to_effects
913 #define persistant_expression_to_effects_TYPE persistant_expression_to_effects
914 #define persistant_expression_to_effects_undefined ((persistant_expression_to_effects)gen_chunk_undefined)
915 #define persistant_expression_to_effects_undefined_p(x) ((x)==persistant_expression_to_effects_undefined)
916 
922 #define gen_PERSISTANT_EXPRESSION_TO_EFFECTS_cons gen_persistant_expression_to_effects_cons
929 
933 };
934 
935 #define persistant_expression_to_effects_domain_number(x) ((x)->_type_)
936 #define persistant_expression_to_effects_hash_table(x) ((x)->_persistant_expression_to_effects_holder_)
937 #define persistant_expression_to_effects_key_type expression
938 #define persistant_expression_to_effects_value_type effects
939 #define PERSISTANT_EXPRESSION_TO_EFFECTS_MAP(k,v,c,f) FUNCTION_MAP(persistant_expression_to_effects,p,p,k,v,c,f)
940 #define PERSISTANT_EXPRESSION_TO_EFFECTS_FOREACH(k,v,f) FUNCTION_FOREACH(persistant_expression_to_effects,p,p,k,v,f)
946 
947 /* RECURSIVE_SELECTOR
948  */
949 #define RECURSIVE_SELECTOR(x) ((recursive_selector)((x).p))
950 #define recursive_selector_CAST(x) RECURSIVE_SELECTOR(x)
951 #define RECURSIVE_SELECTOR_CAST(x) RECURSIVE_SELECTOR(x)
952 #define RECURSIVE_SELECTOR_(x) ((x).e)
953 #define RECURSIVE_SELECTOR_TYPE recursive_selector
954 #define recursive_selector_TYPE recursive_selector
955 #define recursive_selector_undefined ((recursive_selector)gen_chunk_undefined)
956 #define recursive_selector_undefined_p(x) ((x)==recursive_selector_undefined)
957 
963 #define gen_RECURSIVE_SELECTOR_cons gen_recursive_selector_cons
967 extern void write_recursive_selector(FILE*, recursive_selector);
970 
973  list _recursive_selector_basis_; /* basis:path_selectors* */
974  expression _recursive_selector_coefficient_; /* coefficient:expression */
975 };
976 
977 #define recursive_selector_domain_number(x) ((x)->_type_)
978 #define recursive_selector_basis_(x) recursive_selector_basis(x) /* old hack compatible */
979 #define recursive_selector_basis(x) ((x)->_recursive_selector_basis_)
980 #define recursive_selector_coefficient_(x) recursive_selector_coefficient(x) /* old hack compatible */
981 #define recursive_selector_coefficient(x) ((x)->_recursive_selector_coefficient_)
982 
983 /* STATEMENT_CELL_RELATIONS
984  */
985 #define STATEMENT_CELL_RELATIONS(x) ((statement_cell_relations)((x).p))
986 #define statement_cell_relations_CAST(x) STATEMENT_CELL_RELATIONS(x)
987 #define STATEMENT_CELL_RELATIONS_CAST(x) STATEMENT_CELL_RELATIONS(x)
988 #define STATEMENT_CELL_RELATIONS_(x) ((x).e)
989 #define STATEMENT_CELL_RELATIONS_TYPE statement_cell_relations
990 #define statement_cell_relations_TYPE statement_cell_relations
991 #define statement_cell_relations_undefined ((statement_cell_relations)gen_chunk_undefined)
992 #define statement_cell_relations_undefined_p(x) ((x)==statement_cell_relations_undefined)
993 
999 #define gen_STATEMENT_CELL_RELATIONS_cons gen_statement_cell_relations_cons
1006 
1010 };
1011 
1012 #define statement_cell_relations_domain_number(x) ((x)->_type_)
1013 #define statement_cell_relations_hash_table(x) ((x)->_statement_cell_relations_holder_)
1014 #define statement_cell_relations_key_type statement
1015 #define statement_cell_relations_value_type cell_relations
1016 #define STATEMENT_CELL_RELATIONS_MAP(k,v,c,f) FUNCTION_MAP(statement_cell_relations,p,p,k,v,c,f)
1017 #define STATEMENT_CELL_RELATIONS_FOREACH(k,v,f) FUNCTION_FOREACH(statement_cell_relations,p,p,k,v,f)
1023 
1024 /* STATEMENT_EFFECTS
1025  */
1026 #define STATEMENT_EFFECTS(x) ((statement_effects)((x).p))
1027 #define statement_effects_CAST(x) STATEMENT_EFFECTS(x)
1028 #define STATEMENT_EFFECTS_CAST(x) STATEMENT_EFFECTS(x)
1029 #define STATEMENT_EFFECTS_(x) ((x).e)
1030 #define STATEMENT_EFFECTS_TYPE statement_effects
1031 #define statement_effects_TYPE statement_effects
1032 #define statement_effects_undefined ((statement_effects)gen_chunk_undefined)
1033 #define statement_effects_undefined_p(x) ((x)==statement_effects_undefined)
1034 
1040 #define gen_STATEMENT_EFFECTS_cons gen_statement_effects_cons
1044 extern void write_statement_effects(FILE*, statement_effects);
1047 
1051 };
1052 
1053 #define statement_effects_domain_number(x) ((x)->_type_)
1054 #define statement_effects_hash_table(x) ((x)->_statement_effects_holder_)
1055 #define statement_effects_key_type statement
1056 #define statement_effects_value_type effects
1057 #define STATEMENT_EFFECTS_MAP(k,v,c,f) FUNCTION_MAP(statement_effects,p,p,k,v,c,f)
1058 #define STATEMENT_EFFECTS_FOREACH(k,v,f) FUNCTION_FOREACH(statement_effects,p,p,k,v,f)
1064 
1065 #define effects_spec "\
1066 --NEWGEN-START 132\n\
1067 import entity from \"ri.newgen\";\n\
1068 import reference from \"ri.newgen\";\n\
1069 import preference from \"ri.newgen\";\n\
1070 import expression from \"ri.newgen\";\n\
1071 import statement from \"ri.newgen\";\n\
1072 external Psysteme;\n\
1073 action_kind = store:unit + environment:unit + type_declaration:unit;\n\
1074 action = read:action_kind + write:action_kind;\n\
1075 approximation = may:unit + must:unit + exact:unit;\n\
1076 cell_interpretation = value_of:unit + address_of:unit;\n\
1077 cell = reference:reference + preference:preference + gap:gap;\n\
1078 cell_relation = first:interpreted_cell x second:interpreted_cell x approximation:approximation x descriptor:descriptor;\n\
1079 cell_relations = list:cell_relation*;\n\
1080 descriptor = convexunion:Psysteme* + convex:Psysteme + none:unit;\n\
1081 effect = cell:cell x action:action x approximation:approximation x descriptor:descriptor;\n\
1082 effects_classes = classes:effects*;\n\
1083 effects = effects:effect*;\n\
1084 entity_effects = entity:entity -> effects:effects;\n\
1085 gap = variable:entity x path_selectors:path_selectors;\n\
1086 interpreted_cell = cell:cell x cell_interpretation:cell_interpretation;\n\
1087 path_selector = expression:expression + recursive_selector:recursive_selector;\n\
1088 path_selectors = path_selector:path_selector*;\n\
1089 persistant_expression_to_effects = persistant expression:expression -> effects:effects;\n\
1090 recursive_selector = basis:path_selectors* x coefficient:expression;\n\
1091 statement_cell_relations = persistant statement:statement -> cell_relations:cell_relations;\n\
1092 statement_effects = persistant statement:statement -> effects:effects;\n\
1093 "
1094 #endif
void write_entity_effects(FILE *, entity_effects)
Definition: effects.c:604
path_selector make_path_selector(enum path_selector_utype, void *)
Definition: effects.c:758
interpreted_cell check_interpreted_cell(interpreted_cell)
Definition: effects.c:679
descriptor copy_descriptor(descriptor)
DESCRIPTOR.
Definition: effects.c:389
path_selector make_path_selector_expression(expression)
Definition: effects.c:761
void free_entity_effects(entity_effects)
Definition: effects.c:577
void action_kind_non_recursive_free(action_kind)
Definition: effects.c:44
approximation make_approximation_must(void)
Definition: effects.c:182
void write_interpreted_cell(FILE *, interpreted_cell)
Definition: effects.c:703
struct _newgen_struct_effect_ * effect
Definition: effects.h:122
void effect_non_recursive_free(effect)
Definition: effects.c:474
descriptor check_descriptor(descriptor)
Definition: effects.c:395
action_kind read_action_kind(FILE *)
Definition: effects.c:51
cell_relations read_cell_relations(FILE *)
Definition: effects.c:380
persistant_expression_to_effects check_persistant_expression_to_effects(persistant_expression_to_effects)
Definition: effects.c:818
void free_effects_classes(effects_classes)
Definition: effects.c:493
action_kind make_action_kind_environment(void)
Definition: effects.c:68
bool cell_relation_consistent_p(cell_relation)
Definition: effects.c:314
path_selector copy_path_selector(path_selector)
PATH_SELECTOR.
Definition: effects.c:715
cell make_cell_preference(preference)
Definition: effects.c:296
bool bound_statement_effects_p(statement_effects, statement)
Definition: effects.c:1019
void write_statement_effects(FILE *, statement_effects)
Definition: effects.c:998
void update_statement_effects(statement_effects, statement, effects)
Definition: effects.c:1010
void cell_assign_contents(cell, cell)
Definition: effects.c:265
struct _newgen_struct_path_selectors_ * path_selectors
Definition: effects.h:178
statement_cell_relations read_statement_cell_relations(FILE *)
Definition: effects.c:944
void statement_effects_assign_contents(statement_effects, statement_effects)
Definition: effects.c:987
list gen_cell_relations_cons(cell_relations, list)
Definition: effects.c:363
cell copy_cell(cell)
CELL.
Definition: effects.c:246
bool effects_classes_consistent_p(effects_classes)
Definition: effects.c:499
bool effects_classes_defined_p(effects_classes)
Definition: effects.c:503
path_selector_utype
Definition: effects.h:847
@ is_path_selector_expression
Definition: effects.h:848
@ is_path_selector_recursive_selector
Definition: effects.h:849
struct _newgen_struct_reference_ * reference
Definition: effects.h:21
struct _newgen_struct_approximation_ * approximation
Definition: effects.h:74
effects copy_effects(effects)
EFFECTS.
Definition: effects.c:532
cell check_cell(cell)
Definition: effects.c:252
list gen_approximation_cons(approximation, list)
Definition: effects.c:148
cell_interpretation copy_cell_interpretation(cell_interpretation)
CELL_INTERPRETATION.
Definition: effects.c:191
effects_classes read_effects_classes(FILE *)
Definition: effects.c:523
cell_relations delete_statement_cell_relations(statement_cell_relations, statement)
Definition: effects.c:959
void descriptor_assign_contents(descriptor, descriptor)
Definition: effects.c:408
recursive_selector check_recursive_selector(recursive_selector)
Definition: effects.c:875
bool cell_interpretation_defined_p(cell_interpretation)
Definition: effects.c:204
string action_kind_tag_as_string(enum action_kind_utype)
Definition: effects.c:54
effects apply_statement_effects(statement_effects, statement)
Definition: effects.c:1007
struct _newgen_struct_statement_ * statement
Definition: effects.h:42
void free_cell_relations(cell_relations)
Definition: effects.c:350
cell_relation read_cell_relation(FILE *)
Definition: effects.c:338
bool cell_relations_defined_p(cell_relations)
Definition: effects.c:360
action_kind make_action_kind_store(void)
Definition: effects.c:65
struct _newgen_struct_effects_classes_ * effects_classes
Definition: effects.h:130
bool interpreted_cell_consistent_p(interpreted_cell)
Definition: effects.c:682
persistant_expression_to_effects copy_persistant_expression_to_effects(persistant_expression_to_effects)
PERSISTANT_EXPRESSION_TO_EFFECTS.
Definition: effects.c:812
void action_non_recursive_free(action)
Definition: effects.c:103
list gen_path_selectors_cons(path_selectors, list)
Definition: effects.c:786
bool gap_consistent_p(gap)
Definition: effects.c:640
cell make_cell_gap(gap)
Definition: effects.c:299
void interpreted_cell_assign_contents(interpreted_cell, interpreted_cell)
Definition: effects.c:692
void cell_non_recursive_free(cell)
Definition: effects.c:272
void update_entity_effects(entity_effects, entity, effects)
Definition: effects.c:616
string cell_interpretation_tag_as_string(enum cell_interpretation_utype)
Definition: effects.c:227
void free_path_selector(path_selector)
Definition: effects.c:718
bool persistant_expression_to_effects_consistent_p(persistant_expression_to_effects)
Definition: effects.c:821
effect check_effect(effect)
Definition: effects.c:454
void approximation_non_recursive_free(approximation)
Definition: effects.c:158
void write_gap(FILE *, gap)
Definition: effects.c:661
bool bound_statement_cell_relations_p(statement_cell_relations, statement)
Definition: effects.c:962
path_selector read_path_selector(FILE *)
Definition: effects.c:748
cell_relation copy_cell_relation(cell_relation)
CELL_RELATION.
Definition: effects.c:305
effects delete_entity_effects(entity_effects, entity)
Definition: effects.c:622
cell_interpretation read_cell_interpretation(FILE *)
Definition: effects.c:224
bool descriptor_consistent_p(descriptor)
Definition: effects.c:398
cell read_cell(FILE *)
Definition: effects.c:279
cell make_cell(enum cell_utype, void *)
Definition: effects.c:290
void extend_statement_cell_relations(statement_cell_relations, statement, cell_relations)
Definition: effects.c:956
action make_action_write(action_kind)
Definition: effects.c:126
list gen_statement_effects_cons(statement_effects, list)
Definition: effects.c:984
bool descriptor_defined_p(descriptor)
Definition: effects.c:402
bool bound_entity_effects_p(entity_effects, entity)
Definition: effects.c:625
interpreted_cell read_interpreted_cell(FILE *)
Definition: effects.c:706
list gen_cell_relation_cons(cell_relation, list)
Definition: effects.c:321
effects apply_entity_effects(entity_effects, entity)
Definition: effects.c:613
bool action_kind_defined_p(action_kind)
Definition: effects.c:31
struct _newgen_struct_cell_relation_ * cell_relation
Definition: effects.h:98
descriptor read_descriptor(FILE *)
Definition: effects.c:422
void free_effects(effects)
Definition: effects.c:535
statement_effects read_statement_effects(FILE *)
Definition: effects.c:1001
void write_cell(FILE *, cell)
Definition: effects.c:276
string action_tag_as_string(enum action_utype)
Definition: effects.c:113
string path_selector_tag_as_string(enum path_selector_utype)
Definition: effects.c:751
void write_action(FILE *, action)
Definition: effects.c:107
void effects_classes_assign_contents(effects_classes, effects_classes)
Definition: effects.c:509
list gen_persistant_expression_to_effects_cons(persistant_expression_to_effects, list)
Definition: effects.c:828
action_kind make_action_kind_type_declaration(void)
Definition: effects.c:71
bool action_defined_p(action)
Definition: effects.c:90
cell make_cell_reference(reference)
Definition: effects.c:293
bool effect_consistent_p(effect)
Definition: effects.c:457
effects read_effects(FILE *)
Definition: effects.c:565
cell_interpretation make_cell_interpretation_value_of(void)
Definition: effects.c:237
action_kind_utype
Definition: effects.h:236
@ is_action_kind_store
Definition: effects.h:237
@ is_action_kind_environment
Definition: effects.h:238
@ is_action_kind_type_declaration
Definition: effects.h:239
gap make_gap(entity, path_selectors)
Definition: effects.c:667
bool action_consistent_p(action)
Definition: effects.c:86
bool effect_defined_p(effect)
Definition: effects.c:461
list gen_effects_classes_cons(effects_classes, list)
Definition: effects.c:506
void effects_non_recursive_free(effects)
Definition: effects.c:558
persistant_expression_to_effects make_persistant_expression_to_effects(void)
Definition: effects.c:848
void interpreted_cell_non_recursive_free(interpreted_cell)
Definition: effects.c:699
void write_persistant_expression_to_effects(FILE *, persistant_expression_to_effects)
Definition: effects.c:842
bool entity_effects_consistent_p(entity_effects)
Definition: effects.c:583
bool gap_defined_p(gap)
Definition: effects.c:644
void write_effect(FILE *, effect)
Definition: effects.c:478
recursive_selector make_recursive_selector(list, expression)
Definition: effects.c:905
descriptor make_descriptor(enum descriptor_utype, void *)
Definition: effects.c:433
void write_effects(FILE *, effects)
Definition: effects.c:562
void statement_cell_relations_non_recursive_free(statement_cell_relations)
Definition: effects.c:937
void path_selectors_assign_contents(path_selectors, path_selectors)
Definition: effects.c:789
approximation check_approximation(approximation)
Definition: effects.c:138
void update_statement_cell_relations(statement_cell_relations, statement, cell_relations)
Definition: effects.c:953
list gen_gap_cons(gap, list)
Definition: effects.c:647
struct _newgen_struct_gap_ * gap
Definition: effects.h:154
effects check_effects(effects)
Definition: effects.c:538
struct _newgen_struct_cell_ * cell
Definition: effects.h:90
struct _newgen_struct_action_kind_ * action_kind
Definition: effects.h:58
cell_relations apply_statement_cell_relations(statement_cell_relations, statement)
Definition: effects.c:950
void write_effects_classes(FILE *, effects_classes)
Definition: effects.c:520
recursive_selector copy_recursive_selector(recursive_selector)
RECURSIVE_SELECTOR.
Definition: effects.c:869
string descriptor_tag_as_string(enum descriptor_utype)
Definition: effects.c:425
string cell_tag_as_string(enum cell_utype)
Definition: effects.c:282
void action_assign_contents(action, action)
Definition: effects.c:96
path_selectors copy_path_selectors(path_selectors)
PATH_SELECTORS.
Definition: effects.c:770
effects delete_statement_effects(statement_effects, statement)
Definition: effects.c:1016
cell_interpretation_utype
Definition: effects.h:395
@ is_cell_interpretation_address_of
Definition: effects.h:397
@ is_cell_interpretation_value_of
Definition: effects.h:396
void write_path_selector(FILE *, path_selector)
Definition: effects.c:745
interpreted_cell copy_interpreted_cell(interpreted_cell)
INTERPRETED_CELL.
Definition: effects.c:673
cell_relations copy_cell_relations(cell_relations)
CELL_RELATIONS.
Definition: effects.c:347
void persistant_expression_to_effects_non_recursive_free(persistant_expression_to_effects)
Definition: effects.c:838
cell_interpretation make_cell_interpretation(enum cell_interpretation_utype, void *)
Definition: effects.c:234
bool statement_cell_relations_consistent_p(statement_cell_relations)
Definition: effects.c:920
void entity_effects_non_recursive_free(entity_effects)
Definition: effects.c:600
bool action_kind_consistent_p(action_kind)
Definition: effects.c:27
action check_action(action)
Definition: effects.c:83
struct _newgen_struct_recursive_selector_ * recursive_selector
Definition: effects.h:194
void free_gap(gap)
Definition: effects.c:634
cell_relation make_cell_relation(interpreted_cell, interpreted_cell, approximation, descriptor)
Definition: effects.c:341
void extend_persistant_expression_to_effects(persistant_expression_to_effects, expression, effects)
Definition: effects.c:857
approximation copy_approximation(approximation)
APPROXIMATION.
Definition: effects.c:132
list gen_recursive_selector_cons(recursive_selector, list)
Definition: effects.c:885
cell_interpretation make_cell_interpretation_address_of(void)
Definition: effects.c:240
void free_statement_cell_relations(statement_cell_relations)
Definition: effects.c:914
approximation read_approximation(FILE *)
Definition: effects.c:165
void action_kind_assign_contents(action_kind, action_kind)
Definition: effects.c:37
void free_cell_relation(cell_relation)
Definition: effects.c:308
gap read_gap(FILE *)
Definition: effects.c:664
void path_selector_assign_contents(path_selector, path_selector)
Definition: effects.c:734
void extend_entity_effects(entity_effects, entity, effects)
Definition: effects.c:619
action_kind check_action_kind(action_kind)
Definition: effects.c:24
void free_interpreted_cell(interpreted_cell)
Definition: effects.c:676
bool statement_effects_consistent_p(statement_effects)
Definition: effects.c:977
bool statement_effects_defined_p(statement_effects)
Definition: effects.c:981
struct _newgen_struct_cell_interpretation_ * cell_interpretation
Definition: effects.h:82
recursive_selector read_recursive_selector(FILE *)
Definition: effects.c:902
void cell_relation_non_recursive_free(cell_relation)
Definition: effects.c:331
path_selector check_path_selector(path_selector)
Definition: effects.c:721
void free_statement_effects(statement_effects)
Definition: effects.c:971
list gen_entity_effects_cons(entity_effects, list)
Definition: effects.c:590
cell_relations check_cell_relations(cell_relations)
Definition: effects.c:353
void write_path_selectors(FILE *, path_selectors)
Definition: effects.c:800
list gen_action_cons(action, list)
Definition: effects.c:93
action read_action(FILE *)
Definition: effects.c:110
statement_cell_relations copy_statement_cell_relations(statement_cell_relations)
STATEMENT_CELL_RELATIONS.
Definition: effects.c:911
bool cell_relation_defined_p(cell_relation)
Definition: effects.c:318
action copy_action(action)
ACTION.
Definition: effects.c:77
void statement_cell_relations_assign_contents(statement_cell_relations, statement_cell_relations)
Definition: effects.c:930
effect copy_effect(effect)
EFFECT.
Definition: effects.c:448
void free_persistant_expression_to_effects(persistant_expression_to_effects)
Definition: effects.c:815
struct _newgen_struct_persistant_expression_to_effects_ * persistant_expression_to_effects
Definition: effects.h:186
void gap_non_recursive_free(gap)
Definition: effects.c:657
void free_cell_interpretation(cell_interpretation)
Definition: effects.c:194
void write_cell_relations(FILE *, cell_relations)
Definition: effects.c:377
void free_path_selectors(path_selectors)
Definition: effects.c:773
void effect_assign_contents(effect, effect)
Definition: effects.c:467
approximation make_approximation_exact(void)
Definition: effects.c:185
void cell_interpretation_assign_contents(cell_interpretation, cell_interpretation)
Definition: effects.c:210
void recursive_selector_non_recursive_free(recursive_selector)
Definition: effects.c:895
list gen_cell_cons(cell, list)
Definition: effects.c:262
path_selectors check_path_selectors(path_selectors)
Definition: effects.c:776
void effects_assign_contents(effects, effects)
Definition: effects.c:551
void statement_effects_non_recursive_free(statement_effects)
Definition: effects.c:994
list gen_cell_interpretation_cons(cell_interpretation, list)
Definition: effects.c:207
bool interpreted_cell_defined_p(interpreted_cell)
Definition: effects.c:686
bool effects_defined_p(effects)
Definition: effects.c:545
bool cell_defined_p(cell)
Definition: effects.c:259
struct _newgen_struct_effects_ * effects
Definition: effects.h:138
list gen_effects_cons(effects, list)
Definition: effects.c:548
struct _newgen_struct_action_ * action
Definition: effects.h:66
void update_persistant_expression_to_effects(persistant_expression_to_effects, expression, effects)
Definition: effects.c:854
void descriptor_non_recursive_free(descriptor)
Definition: effects.c:415
bool cell_interpretation_consistent_p(cell_interpretation)
Definition: effects.c:200
effects apply_persistant_expression_to_effects(persistant_expression_to_effects, expression)
Definition: effects.c:851
action_kind make_action_kind(enum action_kind_utype, void *)
Definition: effects.c:62
void free_effect(effect)
Definition: effects.c:451
entity_effects copy_entity_effects(entity_effects)
ENTITY_EFFECTS.
Definition: effects.c:574
void recursive_selector_assign_contents(recursive_selector, recursive_selector)
Definition: effects.c:888
bool bound_persistant_expression_to_effects_p(persistant_expression_to_effects, expression)
Definition: effects.c:863
approximation make_approximation_may(void)
Definition: effects.c:179
void path_selectors_non_recursive_free(path_selectors)
Definition: effects.c:796
bool entity_effects_defined_p(entity_effects)
Definition: effects.c:587
bool cell_relations_consistent_p(cell_relations)
Definition: effects.c:356
struct _newgen_struct_path_selector_ * path_selector
Definition: effects.h:170
path_selector make_path_selector_recursive_selector(recursive_selector)
Definition: effects.c:764
effect make_effect(cell, action, approximation, descriptor)
Definition: effects.c:484
path_selectors make_path_selectors(list)
Definition: effects.c:806
void extend_statement_effects(statement_effects, statement, effects)
Definition: effects.c:1013
void write_approximation(FILE *, approximation)
Definition: effects.c:162
list gen_path_selector_cons(path_selector, list)
Definition: effects.c:731
void free_recursive_selector(recursive_selector)
Definition: effects.c:872
list gen_effect_cons(effect, list)
Definition: effects.c:464
bool statement_cell_relations_defined_p(statement_cell_relations)
Definition: effects.c:924
action make_action(enum action_utype, void *)
Definition: effects.c:120
list gen_action_kind_cons(action_kind, list)
Definition: effects.c:34
bool recursive_selector_defined_p(recursive_selector)
Definition: effects.c:882
cell_utype
Definition: effects.h:444
@ is_cell_reference
Definition: effects.h:445
@ is_cell_gap
Definition: effects.h:447
@ is_cell_preference
Definition: effects.h:446
void cell_relation_assign_contents(cell_relation, cell_relation)
Definition: effects.c:324
void free_cell(cell)
Definition: effects.c:249
void free_approximation(approximation)
Definition: effects.c:135
struct _newgen_struct_statement_effects_ * statement_effects
Definition: effects.h:210
list gen_interpreted_cell_cons(interpreted_cell, list)
Definition: effects.c:689
effects_classes copy_effects_classes(effects_classes)
EFFECTS_CLASSES.
Definition: effects.c:490
struct _newgen_struct_expression_ * expression
Definition: effects.h:35
statement_effects copy_statement_effects(statement_effects)
STATEMENT_EFFECTS.
Definition: effects.c:968
string approximation_tag_as_string(enum approximation_utype)
Definition: effects.c:168
descriptor_utype
Definition: effects.h:573
@ is_descriptor_none
Definition: effects.h:576
@ is_descriptor_convexunion
Definition: effects.h:574
@ is_descriptor_convex
Definition: effects.h:575
bool approximation_consistent_p(approximation)
Definition: effects.c:141
void path_selector_non_recursive_free(path_selector)
Definition: effects.c:741
descriptor make_descriptor_none(void)
Definition: effects.c:442
bool effects_consistent_p(effects)
Definition: effects.c:541
cell_relations make_cell_relations(list)
Definition: effects.c:383
void entity_effects_assign_contents(entity_effects, entity_effects)
Definition: effects.c:593
effects_classes make_effects_classes(list)
Definition: effects.c:526
action make_action_read(action_kind)
Definition: effects.c:123
list gen_statement_cell_relations_cons(statement_cell_relations, list)
Definition: effects.c:927
bool recursive_selector_consistent_p(recursive_selector)
Definition: effects.c:878
void free_action_kind(action_kind)
Definition: effects.c:21
bool approximation_defined_p(approximation)
Definition: effects.c:145
void cell_interpretation_non_recursive_free(cell_interpretation)
Definition: effects.c:217
void write_cell_interpretation(FILE *, cell_interpretation)
Definition: effects.c:221
void effects_classes_non_recursive_free(effects_classes)
Definition: effects.c:516
path_selectors read_path_selectors(FILE *)
Definition: effects.c:803
bool path_selector_consistent_p(path_selector)
Definition: effects.c:724
approximation make_approximation(enum approximation_utype, void *)
Definition: effects.c:176
void free_action(action)
Definition: effects.c:80
effect read_effect(FILE *)
Definition: effects.c:481
list gen_descriptor_cons(descriptor, list)
Definition: effects.c:405
struct _newgen_struct_descriptor_ * descriptor
Definition: effects.h:114
struct _newgen_struct_entity_effects_ * entity_effects
Definition: effects.h:146
action_kind copy_action_kind(action_kind)
ACTION_KIND.
Definition: effects.c:18
effects_classes check_effects_classes(effects_classes)
Definition: effects.c:496
entity_effects check_entity_effects(entity_effects)
Definition: effects.c:580
struct _newgen_struct_entity_ * entity
Definition: effects.h:14
entity_effects make_entity_effects(void)
Definition: effects.c:610
void write_action_kind(FILE *, action_kind)
Definition: effects.c:48
persistant_expression_to_effects read_persistant_expression_to_effects(FILE *)
Definition: effects.c:845
struct _newgen_struct_cell_relations_ * cell_relations
Definition: effects.h:106
void cell_relations_assign_contents(cell_relations, cell_relations)
Definition: effects.c:366
void write_statement_cell_relations(FILE *, statement_cell_relations)
Definition: effects.c:941
void approximation_assign_contents(approximation, approximation)
Definition: effects.c:151
gap copy_gap(gap)
GAP.
Definition: effects.c:631
statement_cell_relations check_statement_cell_relations(statement_cell_relations)
Definition: effects.c:917
entity_effects read_entity_effects(FILE *)
Definition: effects.c:607
action_utype
Definition: effects.h:291
@ is_action_write
Definition: effects.h:293
@ is_action_read
Definition: effects.h:292
effects delete_persistant_expression_to_effects(persistant_expression_to_effects, expression)
Definition: effects.c:860
void write_descriptor(FILE *, descriptor)
Definition: effects.c:419
cell_relation check_cell_relation(cell_relation)
Definition: effects.c:311
bool path_selectors_consistent_p(path_selectors)
Definition: effects.c:779
void persistant_expression_to_effects_assign_contents(persistant_expression_to_effects, persistant_expression_to_effects)
Definition: effects.c:831
void cell_relations_non_recursive_free(cell_relations)
Definition: effects.c:373
cell_interpretation check_cell_interpretation(cell_interpretation)
Definition: effects.c:197
effects make_effects(list)
Definition: effects.c:568
descriptor make_descriptor_convexunion(list)
Definition: effects.c:436
bool path_selector_defined_p(path_selector)
Definition: effects.c:728
void write_cell_relation(FILE *, cell_relation)
Definition: effects.c:335
void write_recursive_selector(FILE *, recursive_selector)
Definition: effects.c:899
approximation_utype
Definition: effects.h:340
@ is_approximation_may
Definition: effects.h:341
@ is_approximation_exact
Definition: effects.h:343
@ is_approximation_must
Definition: effects.h:342
gap check_gap(gap)
Definition: effects.c:637
statement_effects make_statement_effects(void)
Definition: effects.c:1004
struct _newgen_struct_statement_cell_relations_ * statement_cell_relations
Definition: effects.h:202
statement_cell_relations make_statement_cell_relations(void)
Definition: effects.c:947
descriptor make_descriptor_convex(Psysteme)
Definition: effects.c:439
struct _newgen_struct_interpreted_cell_ * interpreted_cell
Definition: effects.h:162
void free_descriptor(descriptor)
Definition: effects.c:392
struct _newgen_struct_preference_ * preference
Definition: effects.h:28
interpreted_cell make_interpreted_cell(cell, cell_interpretation)
Definition: effects.c:709
bool cell_consistent_p(cell)
Definition: effects.c:255
bool persistant_expression_to_effects_defined_p(persistant_expression_to_effects)
Definition: effects.c:825
void gap_assign_contents(gap, gap)
Definition: effects.c:650
bool path_selectors_defined_p(path_selectors)
Definition: effects.c:783
statement_effects check_statement_effects(statement_effects)
Definition: effects.c:974
#define intptr_t
Definition: stdint.in.h:294
union _newgen_struct_action_::@47 _action_union_
enum action_utype _action_tag__
Definition: effects.h:302
action_kind _action_write_
read:action_kind
Definition: effects.h:305
action_kind _action_read_
Definition: effects.h:304
gen_chunk _action_kind_type_declaration_
environment:unit
Definition: effects.h:253
union _newgen_struct_action_kind_::@46 _action_kind_union_
gen_chunk _action_kind_environment_
store:unit
Definition: effects.h:252
gen_chunk _action_kind_store_
Definition: effects.h:251
enum action_kind_utype _action_kind_tag__
Definition: effects.h:249
union _newgen_struct_approximation_::@48 _approximation_union_
enum approximation_utype _approximation_tag__
Definition: effects.h:353
gen_chunk _approximation_exact_
must:unit
Definition: effects.h:357
gen_chunk _approximation_must_
may:unit
Definition: effects.h:356
preference _cell_preference_
reference:reference
Definition: effects.h:460
enum cell_utype _cell_tag__
Definition: effects.h:457
union _newgen_struct_cell_::@50 _cell_union_
gap _cell_gap_
preference:preference
Definition: effects.h:461
reference _cell_reference_
Definition: effects.h:459
union _newgen_struct_cell_interpretation_::@49 _cell_interpretation_union_
enum cell_interpretation_utype _cell_interpretation_tag__
Definition: effects.h:406
gen_chunk _cell_interpretation_address_of_
value_of:unit
Definition: effects.h:409
approximation _cell_relation_approximation_
second:interpreted_cell
Definition: effects.h:505
interpreted_cell _cell_relation_second_
first:interpreted_cell
Definition: effects.h:504
descriptor _cell_relation_descriptor_
approximation:approximation
Definition: effects.h:506
interpreted_cell _cell_relation_first_
Definition: effects.h:503
gen_chunk _descriptor_none_
convex:Psysteme
Definition: effects.h:590
union _newgen_struct_descriptor_::@51 _descriptor_union_
enum descriptor_utype _descriptor_tag__
Definition: effects.h:586
Psysteme _descriptor_convex_
convexunion:Psysteme*
Definition: effects.h:589
action _effect_action_
cell:cell
Definition: effects.h:633
descriptor _effect_descriptor_
approximation:approximation
Definition: effects.h:635
approximation _effect_approximation_
action:action
Definition: effects.h:634
hash_table _entity_effects_holder_
Definition: effects.h:738
path_selectors _gap_path_selectors_
variable:entity
Definition: effects.h:780
entity _gap_variable_
Definition: effects.h:779
intptr_t _type_
Definition: effects.h:778
cell_interpretation _interpreted_cell_cell_interpretation_
cell:cell
Definition: effects.h:816
enum path_selector_utype _path_selector_tag__
Definition: effects.h:858
expression _path_selector_expression_
Definition: effects.h:860
union _newgen_struct_path_selector_::@52 _path_selector_union_
recursive_selector _path_selector_recursive_selector_
expression:expression
Definition: effects.h:861
expression _recursive_selector_coefficient_
basis:path_selectors*
Definition: effects.h:974
The structure used to build lists in NewGen.
Definition: newgen_list.h:41
A gen_chunk is used to store every object.
Definition: genC.h:58