PIPS
effects.c
Go to the documentation of this file.
1 /*
2  * THIS FILE HAS BEEN AUTOMATICALLY GENERATED BY NEWGEN.
3  *
4  * PLEASE DO NOT MODIFY IT.
5  */
6 
7 typedef void * Psysteme;
8 
9 #include <stdio.h>
10 #include <stdlib.h>
11 #include <string.h>
12 #include "genC.h"
13 #include "effects.h"
14 
15 
16 /* ACTION_KIND
17  */
19  return (action_kind) gen_copy_tree((gen_chunk*) p);
20 }
22  gen_free((gen_chunk*) p);
23 }
26 }
29  return gen_consistent_p((gen_chunk*) p);
30 }
32  return gen_defined_p((gen_chunk*) p);
33 }
36 }
40  message_assert("defined references to domain action_kind",
42  memcpy(r, v, sizeof(struct _newgen_struct_action_kind_));
43 }
45  // should clear up contents...
46  free(p);
47 }
49  gen_write(f, (gen_chunk*) p);
50 }
52  return (action_kind) gen_read(f);
53 }
55  switch (tag) {
56  case is_action_kind_store: return "store";
57  case is_action_kind_environment: return "environment";
58  case is_action_kind_type_declaration: return "type_declaration";
59  default: return string_undefined;
60  }
61 }
64 }
67 }
70 }
73 }
74 
75 /* ACTION
76  */
78  return (action) gen_copy_tree((gen_chunk*) p);
79 }
81  gen_free((gen_chunk*) p);
82 }
84  return (action) gen_check((gen_chunk*) p, action_domain);
85 }
87  check_action(p);
88  return gen_consistent_p((gen_chunk*) p);
89 }
91  return gen_defined_p((gen_chunk*) p);
92 }
95 }
97  check_action(r);
98  check_action(v);
99  message_assert("defined references to domain action",
101  memcpy(r, v, sizeof(struct _newgen_struct_action_));
102 }
104  // should clear up contents...
105  free(p);
106 }
107 void write_action(FILE* f, action p) {
108  gen_write(f, (gen_chunk*) p);
109 }
111  return (action) gen_read(f);
112 }
114  switch (tag) {
115  case is_action_read: return "read";
116  case is_action_write: return "write";
117  default: return string_undefined;
118  }
119 }
120 action make_action(enum action_utype tag, void * val) {
121  return (action) gen_alloc(3*sizeof(gen_chunk), GEN_CHECK_ALLOC, action_domain, tag, val);
122 }
124  return make_action(is_action_read, (void*)(intptr_t) _field_);
125 }
127  return make_action(is_action_write, (void*)(intptr_t) _field_);
128 }
129 
130 /* APPROXIMATION
131  */
133  return (approximation) gen_copy_tree((gen_chunk*) p);
134 }
136  gen_free((gen_chunk*) p);
137 }
140 }
143  return gen_consistent_p((gen_chunk*) p);
144 }
146  return gen_defined_p((gen_chunk*) p);
147 }
150 }
154  message_assert("defined references to domain approximation",
156  memcpy(r, v, sizeof(struct _newgen_struct_approximation_));
157 }
159  // should clear up contents...
160  free(p);
161 }
163  gen_write(f, (gen_chunk*) p);
164 }
166  return (approximation) gen_read(f);
167 }
169  switch (tag) {
170  case is_approximation_may: return "may";
171  case is_approximation_must: return "must";
172  case is_approximation_exact: return "exact";
173  default: return string_undefined;
174  }
175 }
178 }
181 }
184 }
187 }
188 
189 /* CELL_INTERPRETATION
190  */
193 }
195  gen_free((gen_chunk*) p);
196 }
199 }
202  return gen_consistent_p((gen_chunk*) p);
203 }
205  return gen_defined_p((gen_chunk*) p);
206 }
209 }
213  message_assert("defined references to domain cell_interpretation",
215  memcpy(r, v, sizeof(struct _newgen_struct_cell_interpretation_));
216 }
218  // should clear up contents...
219  free(p);
220 }
222  gen_write(f, (gen_chunk*) p);
223 }
225  return (cell_interpretation) gen_read(f);
226 }
228  switch (tag) {
229  case is_cell_interpretation_value_of: return "value_of";
230  case is_cell_interpretation_address_of: return "address_of";
231  default: return string_undefined;
232  }
233 }
236 }
239 }
242 }
243 
244 /* CELL
245  */
247  return (cell) gen_copy_tree((gen_chunk*) p);
248 }
249 void free_cell(cell p) {
250  gen_free((gen_chunk*) p);
251 }
253  return (cell) gen_check((gen_chunk*) p, cell_domain);
254 }
256  check_cell(p);
257  return gen_consistent_p((gen_chunk*) p);
258 }
260  return gen_defined_p((gen_chunk*) p);
261 }
263  return gen_typed_cons(CELL_NEWGEN_DOMAIN, p, l);
264 }
266  check_cell(r);
267  check_cell(v);
268  message_assert("defined references to domain cell",
269  cell_defined_p(r) && cell_defined_p(v));
270  memcpy(r, v, sizeof(struct _newgen_struct_cell_));
271 }
273  // should clear up contents...
274  free(p);
275 }
276 void write_cell(FILE* f, cell p) {
277  gen_write(f, (gen_chunk*) p);
278 }
279 cell read_cell(FILE* f) {
280  return (cell) gen_read(f);
281 }
283  switch (tag) {
284  case is_cell_reference: return "reference";
285  case is_cell_preference: return "preference";
286  case is_cell_gap: return "gap";
287  default: return string_undefined;
288  }
289 }
290 cell make_cell(enum cell_utype tag, void * val) {
291  return (cell) gen_alloc(3*sizeof(gen_chunk), GEN_CHECK_ALLOC, cell_domain, tag, val);
292 }
294  return make_cell(is_cell_reference, (void*)(intptr_t) _field_);
295 }
297  return make_cell(is_cell_preference, (void*)(intptr_t) _field_);
298 }
300  return make_cell(is_cell_gap, (void*)(intptr_t) _field_);
301 }
302 
303 /* CELL_RELATION
304  */
306  return (cell_relation) gen_copy_tree((gen_chunk*) p);
307 }
309  gen_free((gen_chunk*) p);
310 }
313 }
316  return gen_consistent_p((gen_chunk*) p);
317 }
319  return gen_defined_p((gen_chunk*) p);
320 }
323 }
327  message_assert("defined references to domain cell_relation",
329  memcpy(r, v, sizeof(struct _newgen_struct_cell_relation_));
330 }
332  // should clear up contents...
333  free(p);
334 }
336  gen_write(f, (gen_chunk*) p);
337 }
339  return (cell_relation) gen_read(f);
340 }
342  return (cell_relation) gen_alloc(5*sizeof(gen_chunk), GEN_CHECK_ALLOC, cell_relation_domain, a1, a2, a3, a4);
343 }
344 
345 /* CELL_RELATIONS
346  */
348  return (cell_relations) gen_copy_tree((gen_chunk*) p);
349 }
351  gen_free((gen_chunk*) p);
352 }
355 }
358  return gen_consistent_p((gen_chunk*) p);
359 }
361  return gen_defined_p((gen_chunk*) p);
362 }
365 }
369  message_assert("defined references to domain cell_relations",
371  memcpy(r, v, sizeof(struct _newgen_struct_cell_relations_));
372 }
374  // should clear up contents...
375  free(p);
376 }
378  gen_write(f, (gen_chunk*) p);
379 }
381  return (cell_relations) gen_read(f);
382 }
385 }
386 
387 /* DESCRIPTOR
388  */
390  return (descriptor) gen_copy_tree((gen_chunk*) p);
391 }
393  gen_free((gen_chunk*) p);
394 }
397 }
399  check_descriptor(p);
400  return gen_consistent_p((gen_chunk*) p);
401 }
403  return gen_defined_p((gen_chunk*) p);
404 }
407 }
409  check_descriptor(r);
410  check_descriptor(v);
411  message_assert("defined references to domain descriptor",
413  memcpy(r, v, sizeof(struct _newgen_struct_descriptor_));
414 }
416  // should clear up contents...
417  free(p);
418 }
419 void write_descriptor(FILE* f, descriptor p) {
420  gen_write(f, (gen_chunk*) p);
421 }
423  return (descriptor) gen_read(f);
424 }
426  switch (tag) {
427  case is_descriptor_convexunion: return "convexunion";
428  case is_descriptor_convex: return "convex";
429  case is_descriptor_none: return "none";
430  default: return string_undefined;
431  }
432 }
435 }
437  return make_descriptor(is_descriptor_convexunion, (void*)(intptr_t) _field_);
438 }
440  return make_descriptor(is_descriptor_convex, (void*)(intptr_t) _field_);
441 }
444 }
445 
446 /* EFFECT
447  */
449  return (effect) gen_copy_tree((gen_chunk*) p);
450 }
452  gen_free((gen_chunk*) p);
453 }
455  return (effect) gen_check((gen_chunk*) p, effect_domain);
456 }
458  check_effect(p);
459  return gen_consistent_p((gen_chunk*) p);
460 }
462  return gen_defined_p((gen_chunk*) p);
463 }
465  return gen_typed_cons(EFFECT_NEWGEN_DOMAIN, p, l);
466 }
468  check_effect(r);
469  check_effect(v);
470  message_assert("defined references to domain effect",
472  memcpy(r, v, sizeof(struct _newgen_struct_effect_));
473 }
475  // should clear up contents...
476  free(p);
477 }
478 void write_effect(FILE* f, effect p) {
479  gen_write(f, (gen_chunk*) p);
480 }
482  return (effect) gen_read(f);
483 }
485  return (effect) gen_alloc(5*sizeof(gen_chunk), GEN_CHECK_ALLOC, effect_domain, a1, a2, a3, a4);
486 }
487 
488 /* EFFECTS_CLASSES
489  */
491  return (effects_classes) gen_copy_tree((gen_chunk*) p);
492 }
494  gen_free((gen_chunk*) p);
495 }
498 }
501  return gen_consistent_p((gen_chunk*) p);
502 }
504  return gen_defined_p((gen_chunk*) p);
505 }
508 }
512  message_assert("defined references to domain effects_classes",
514  memcpy(r, v, sizeof(struct _newgen_struct_effects_classes_));
515 }
517  // should clear up contents...
518  free(p);
519 }
521  gen_write(f, (gen_chunk*) p);
522 }
524  return (effects_classes) gen_read(f);
525 }
528 }
529 
530 /* EFFECTS
531  */
533  return (effects) gen_copy_tree((gen_chunk*) p);
534 }
536  gen_free((gen_chunk*) p);
537 }
539  return (effects) gen_check((gen_chunk*) p, effects_domain);
540 }
542  check_effects(p);
543  return gen_consistent_p((gen_chunk*) p);
544 }
546  return gen_defined_p((gen_chunk*) p);
547 }
550 }
552  check_effects(r);
553  check_effects(v);
554  message_assert("defined references to domain effects",
556  memcpy(r, v, sizeof(struct _newgen_struct_effects_));
557 }
559  // should clear up contents...
560  free(p);
561 }
562 void write_effects(FILE* f, effects p) {
563  gen_write(f, (gen_chunk*) p);
564 }
566  return (effects) gen_read(f);
567 }
569  return (effects) gen_alloc(2*sizeof(gen_chunk), GEN_CHECK_ALLOC, effects_domain, a);
570 }
571 
572 /* ENTITY_EFFECTS
573  */
575  return (entity_effects) gen_copy_tree((gen_chunk*) p);
576 }
578  gen_free((gen_chunk*) p);
579 }
582 }
585  return gen_consistent_p((gen_chunk*) p);
586 }
588  return gen_defined_p((gen_chunk*) p);
589 }
592 }
596  message_assert("defined references to domain entity_effects",
598  memcpy(r, v, sizeof(struct _newgen_struct_entity_effects_));
599 }
601  // should clear up contents...
602  free(p);
603 }
605  gen_write(f, (gen_chunk*) p);
606 }
608  return (entity_effects) gen_read(f);
609 }
612 }
614  return (effects) (intptr_t)HASH_GET(p, p, entity_effects_hash_table(f), k);
615 }
618 }
621 }
624 }
627 }
628 
629 /* GAP
630  */
632  return (gap) gen_copy_tree((gen_chunk*) p);
633 }
634 void free_gap(gap p) {
635  gen_free((gen_chunk*) p);
636 }
638  return (gap) gen_check((gen_chunk*) p, gap_domain);
639 }
641  check_gap(p);
642  return gen_consistent_p((gen_chunk*) p);
643 }
645  return gen_defined_p((gen_chunk*) p);
646 }
648  return gen_typed_cons(GAP_NEWGEN_DOMAIN, p, l);
649 }
651  check_gap(r);
652  check_gap(v);
653  message_assert("defined references to domain gap",
654  gap_defined_p(r) && gap_defined_p(v));
655  memcpy(r, v, sizeof(struct _newgen_struct_gap_));
656 }
658  // should clear up contents...
659  free(p);
660 }
661 void write_gap(FILE* f, gap p) {
662  gen_write(f, (gen_chunk*) p);
663 }
664 gap read_gap(FILE* f) {
665  return (gap) gen_read(f);
666 }
668  return (gap) gen_alloc(3*sizeof(gen_chunk), GEN_CHECK_ALLOC, gap_domain, a1, a2);
669 }
670 
671 /* INTERPRETED_CELL
672  */
675 }
677  gen_free((gen_chunk*) p);
678 }
681 }
684  return gen_consistent_p((gen_chunk*) p);
685 }
687  return gen_defined_p((gen_chunk*) p);
688 }
691 }
695  message_assert("defined references to domain interpreted_cell",
697  memcpy(r, v, sizeof(struct _newgen_struct_interpreted_cell_));
698 }
700  // should clear up contents...
701  free(p);
702 }
704  gen_write(f, (gen_chunk*) p);
705 }
707  return (interpreted_cell) gen_read(f);
708 }
711 }
712 
713 /* PATH_SELECTOR
714  */
716  return (path_selector) gen_copy_tree((gen_chunk*) p);
717 }
719  gen_free((gen_chunk*) p);
720 }
723 }
726  return gen_consistent_p((gen_chunk*) p);
727 }
729  return gen_defined_p((gen_chunk*) p);
730 }
733 }
737  message_assert("defined references to domain path_selector",
739  memcpy(r, v, sizeof(struct _newgen_struct_path_selector_));
740 }
742  // should clear up contents...
743  free(p);
744 }
746  gen_write(f, (gen_chunk*) p);
747 }
749  return (path_selector) gen_read(f);
750 }
752  switch (tag) {
753  case is_path_selector_expression: return "expression";
754  case is_path_selector_recursive_selector: return "recursive_selector";
755  default: return string_undefined;
756  }
757 }
760 }
762  return make_path_selector(is_path_selector_expression, (void*)(intptr_t) _field_);
763 }
766 }
767 
768 /* PATH_SELECTORS
769  */
771  return (path_selectors) gen_copy_tree((gen_chunk*) p);
772 }
774  gen_free((gen_chunk*) p);
775 }
778 }
781  return gen_consistent_p((gen_chunk*) p);
782 }
784  return gen_defined_p((gen_chunk*) p);
785 }
788 }
792  message_assert("defined references to domain path_selectors",
794  memcpy(r, v, sizeof(struct _newgen_struct_path_selectors_));
795 }
797  // should clear up contents...
798  free(p);
799 }
801  gen_write(f, (gen_chunk*) p);
802 }
804  return (path_selectors) gen_read(f);
805 }
808 }
809 
810 /* PERSISTANT_EXPRESSION_TO_EFFECTS
811  */
814 }
816  gen_free((gen_chunk*) p);
817 }
820 }
823  return gen_consistent_p((gen_chunk*) p);
824 }
826  return gen_defined_p((gen_chunk*) p);
827 }
830 }
834  message_assert("defined references to domain persistant_expression_to_effects",
836  memcpy(r, v, sizeof(struct _newgen_struct_persistant_expression_to_effects_));
837 }
839  // should clear up contents...
840  free(p);
841 }
843  gen_write(f, (gen_chunk*) p);
844 }
847 }
850 }
853 }
856 }
859 }
862 }
865 }
866 
867 /* RECURSIVE_SELECTOR
868  */
871 }
873  gen_free((gen_chunk*) p);
874 }
877 }
880  return gen_consistent_p((gen_chunk*) p);
881 }
883  return gen_defined_p((gen_chunk*) p);
884 }
887 }
891  message_assert("defined references to domain recursive_selector",
893  memcpy(r, v, sizeof(struct _newgen_struct_recursive_selector_));
894 }
896  // should clear up contents...
897  free(p);
898 }
900  gen_write(f, (gen_chunk*) p);
901 }
903  return (recursive_selector) gen_read(f);
904 }
907 }
908 
909 /* STATEMENT_CELL_RELATIONS
910  */
913 }
915  gen_free((gen_chunk*) p);
916 }
919 }
922  return gen_consistent_p((gen_chunk*) p);
923 }
925  return gen_defined_p((gen_chunk*) p);
926 }
929 }
933  message_assert("defined references to domain statement_cell_relations",
935  memcpy(r, v, sizeof(struct _newgen_struct_statement_cell_relations_));
936 }
938  // should clear up contents...
939  free(p);
940 }
942  gen_write(f, (gen_chunk*) p);
943 }
946 }
949 }
952 }
955 }
958 }
961 }
964 }
965 
966 /* STATEMENT_EFFECTS
967  */
970 }
972  gen_free((gen_chunk*) p);
973 }
976 }
979  return gen_consistent_p((gen_chunk*) p);
980 }
982  return gen_defined_p((gen_chunk*) p);
983 }
986 }
990  message_assert("defined references to domain statement_effects",
992  memcpy(r, v, sizeof(struct _newgen_struct_statement_effects_));
993 }
995  // should clear up contents...
996  free(p);
997 }
999  gen_write(f, (gen_chunk*) p);
1000 }
1002  return (statement_effects) gen_read(f);
1003 }
1006 }
1009 }
1012 }
1015 }
1018 }
1021 }
1022 
string approximation_tag_as_string(enum approximation_utype tag)
Definition: effects.c:168
action_kind make_action_kind(enum action_kind_utype tag, void *val)
Definition: effects.c:62
action make_action_read(action_kind _field_)
Definition: effects.c:123
bool statement_cell_relations_consistent_p(statement_cell_relations p)
Definition: effects.c:920
list gen_statement_effects_cons(statement_effects p, list l)
Definition: effects.c:984
recursive_selector copy_recursive_selector(recursive_selector p)
RECURSIVE_SELECTOR.
Definition: effects.c:869
void statement_cell_relations_assign_contents(statement_cell_relations r, statement_cell_relations v)
Definition: effects.c:930
bool cell_defined_p(cell p)
Definition: effects.c:259
approximation make_approximation_must(void)
Definition: effects.c:182
void persistant_expression_to_effects_non_recursive_free(persistant_expression_to_effects p)
Definition: effects.c:838
path_selector check_path_selector(path_selector p)
Definition: effects.c:721
bool bound_statement_cell_relations_p(statement_cell_relations f, statement k)
Definition: effects.c:962
path_selector make_path_selector_expression(expression _field_)
Definition: effects.c:761
effects apply_persistant_expression_to_effects(persistant_expression_to_effects f, expression k)
Definition: effects.c:851
cell check_cell(cell p)
Definition: effects.c:252
action_kind make_action_kind_environment(void)
Definition: effects.c:68
void effects_non_recursive_free(effects p)
Definition: effects.c:558
void effects_classes_assign_contents(effects_classes r, effects_classes v)
Definition: effects.c:509
bool statement_effects_consistent_p(statement_effects p)
Definition: effects.c:977
void cell_relation_non_recursive_free(cell_relation p)
Definition: effects.c:331
effects read_effects(FILE *f)
Definition: effects.c:565
void write_cell_relations(FILE *f, cell_relations p)
Definition: effects.c:377
list gen_action_cons(action p, list l)
Definition: effects.c:93
path_selectors copy_path_selectors(path_selectors p)
PATH_SELECTORS.
Definition: effects.c:770
bool effects_defined_p(effects p)
Definition: effects.c:545
cell make_cell_reference(reference _field_)
Definition: effects.c:293
list gen_recursive_selector_cons(recursive_selector p, list l)
Definition: effects.c:885
action_kind read_action_kind(FILE *f)
Definition: effects.c:51
action copy_action(action p)
ACTION.
Definition: effects.c:77
void write_interpreted_cell(FILE *f, interpreted_cell p)
Definition: effects.c:703
void cell_interpretation_non_recursive_free(cell_interpretation p)
Definition: effects.c:217
void update_entity_effects(entity_effects f, entity k, effects v)
Definition: effects.c:616
void cell_relations_non_recursive_free(cell_relations p)
Definition: effects.c:373
void write_statement_cell_relations(FILE *f, statement_cell_relations p)
Definition: effects.c:941
descriptor make_descriptor(enum descriptor_utype tag, void *val)
Definition: effects.c:433
cell_relation check_cell_relation(cell_relation p)
Definition: effects.c:311
void write_statement_effects(FILE *f, statement_effects p)
Definition: effects.c:998
statement_cell_relations check_statement_cell_relations(statement_cell_relations p)
Definition: effects.c:917
void write_recursive_selector(FILE *f, recursive_selector p)
Definition: effects.c:899
action_kind make_action_kind_store(void)
Definition: effects.c:65
cell_relations read_cell_relations(FILE *f)
Definition: effects.c:380
entity_effects check_entity_effects(entity_effects p)
Definition: effects.c:580
gap read_gap(FILE *f)
Definition: effects.c:664
void extend_entity_effects(entity_effects f, entity k, effects v)
Definition: effects.c:619
bool interpreted_cell_consistent_p(interpreted_cell p)
Definition: effects.c:682
void effect_non_recursive_free(effect p)
Definition: effects.c:474
effects check_effects(effects p)
Definition: effects.c:538
void extend_statement_cell_relations(statement_cell_relations f, statement k, cell_relations v)
Definition: effects.c:956
bool approximation_defined_p(approximation p)
Definition: effects.c:145
void write_descriptor(FILE *f, descriptor p)
Definition: effects.c:419
cell_relation make_cell_relation(interpreted_cell a1, interpreted_cell a2, approximation a3, descriptor a4)
Definition: effects.c:341
void free_effect(effect p)
Definition: effects.c:451
bool path_selector_consistent_p(path_selector p)
Definition: effects.c:724
void entity_effects_assign_contents(entity_effects r, entity_effects v)
Definition: effects.c:593
list gen_action_kind_cons(action_kind p, list l)
Definition: effects.c:34
cell_relations apply_statement_cell_relations(statement_cell_relations f, statement k)
Definition: effects.c:950
bool entity_effects_consistent_p(entity_effects p)
Definition: effects.c:583
void free_effects_classes(effects_classes p)
Definition: effects.c:493
interpreted_cell copy_interpreted_cell(interpreted_cell p)
INTERPRETED_CELL.
Definition: effects.c:673
bool action_consistent_p(action p)
Definition: effects.c:86
cell make_cell_gap(gap _field_)
Definition: effects.c:299
effects delete_statement_effects(statement_effects f, statement k)
Definition: effects.c:1016
interpreted_cell make_interpreted_cell(cell a1, cell_interpretation a2)
Definition: effects.c:709
bool recursive_selector_consistent_p(recursive_selector p)
Definition: effects.c:878
cell_interpretation read_cell_interpretation(FILE *f)
Definition: effects.c:224
bool statement_cell_relations_defined_p(statement_cell_relations p)
Definition: effects.c:924
void free_cell_relation(cell_relation p)
Definition: effects.c:308
void descriptor_assign_contents(descriptor r, descriptor v)
Definition: effects.c:408
interpreted_cell check_interpreted_cell(interpreted_cell p)
Definition: effects.c:679
statement_effects copy_statement_effects(statement_effects p)
STATEMENT_EFFECTS.
Definition: effects.c:968
effects_classes make_effects_classes(list a)
Definition: effects.c:526
statement_cell_relations read_statement_cell_relations(FILE *f)
Definition: effects.c:944
void action_non_recursive_free(action p)
Definition: effects.c:103
bool bound_statement_effects_p(statement_effects f, statement k)
Definition: effects.c:1019
string action_tag_as_string(enum action_utype tag)
Definition: effects.c:113
void approximation_non_recursive_free(approximation p)
Definition: effects.c:158
void free_persistant_expression_to_effects(persistant_expression_to_effects p)
Definition: effects.c:815
void persistant_expression_to_effects_assign_contents(persistant_expression_to_effects r, persistant_expression_to_effects v)
Definition: effects.c:831
descriptor make_descriptor_convex(Psysteme _field_)
Definition: effects.c:439
void interpreted_cell_assign_contents(interpreted_cell r, interpreted_cell v)
Definition: effects.c:692
effects delete_entity_effects(entity_effects f, entity k)
Definition: effects.c:622
bool effects_consistent_p(effects p)
Definition: effects.c:541
path_selector copy_path_selector(path_selector p)
PATH_SELECTOR.
Definition: effects.c:715
void action_kind_non_recursive_free(action_kind p)
Definition: effects.c:44
path_selector make_path_selector_recursive_selector(recursive_selector _field_)
Definition: effects.c:764
void effect_assign_contents(effect r, effect v)
Definition: effects.c:467
list gen_persistant_expression_to_effects_cons(persistant_expression_to_effects p, list l)
Definition: effects.c:828
action_kind make_action_kind_type_declaration(void)
Definition: effects.c:71
recursive_selector read_recursive_selector(FILE *f)
Definition: effects.c:902
action_kind copy_action_kind(action_kind p)
ACTION_KIND.
Definition: effects.c:18
void statement_effects_assign_contents(statement_effects r, statement_effects v)
Definition: effects.c:987
cell_relations delete_statement_cell_relations(statement_cell_relations f, statement k)
Definition: effects.c:959
void free_statement_effects(statement_effects p)
Definition: effects.c:971
bool bound_entity_effects_p(entity_effects f, entity k)
Definition: effects.c:625
cell_interpretation make_cell_interpretation_value_of(void)
Definition: effects.c:237
list gen_gap_cons(gap p, list l)
Definition: effects.c:647
void write_effects(FILE *f, effects p)
Definition: effects.c:562
bool descriptor_defined_p(descriptor p)
Definition: effects.c:402
interpreted_cell read_interpreted_cell(FILE *f)
Definition: effects.c:706
bool action_kind_defined_p(action_kind p)
Definition: effects.c:31
path_selectors read_path_selectors(FILE *f)
Definition: effects.c:803
gap check_gap(gap p)
Definition: effects.c:637
string action_kind_tag_as_string(enum action_kind_utype tag)
Definition: effects.c:54
entity_effects copy_entity_effects(entity_effects p)
ENTITY_EFFECTS.
Definition: effects.c:574
list gen_entity_effects_cons(entity_effects p, list l)
Definition: effects.c:590
persistant_expression_to_effects make_persistant_expression_to_effects(void)
Definition: effects.c:848
void write_cell_interpretation(FILE *f, cell_interpretation p)
Definition: effects.c:221
void statement_effects_non_recursive_free(statement_effects p)
Definition: effects.c:994
bool cell_interpretation_defined_p(cell_interpretation p)
Definition: effects.c:204
bool cell_relations_consistent_p(cell_relations p)
Definition: effects.c:356
cell_interpretation make_cell_interpretation(enum cell_interpretation_utype tag, void *val)
Definition: effects.c:234
recursive_selector make_recursive_selector(list a1, expression a2)
Definition: effects.c:905
void approximation_assign_contents(approximation r, approximation v)
Definition: effects.c:151
persistant_expression_to_effects copy_persistant_expression_to_effects(persistant_expression_to_effects p)
PERSISTANT_EXPRESSION_TO_EFFECTS.
Definition: effects.c:812
bool bound_persistant_expression_to_effects_p(persistant_expression_to_effects f, expression k)
Definition: effects.c:863
bool statement_effects_defined_p(statement_effects p)
Definition: effects.c:981
void cell_non_recursive_free(cell p)
Definition: effects.c:272
void free_entity_effects(entity_effects p)
Definition: effects.c:577
descriptor make_descriptor_convexunion(list _field_)
Definition: effects.c:436
void cell_interpretation_assign_contents(cell_interpretation r, cell_interpretation v)
Definition: effects.c:210
statement_effects check_statement_effects(statement_effects p)
Definition: effects.c:974
cell_relations copy_cell_relations(cell_relations p)
CELL_RELATIONS.
Definition: effects.c:347
effects make_effects(list a)
Definition: effects.c:568
void free_path_selectors(path_selectors p)
Definition: effects.c:773
cell make_cell(enum cell_utype tag, void *val)
Definition: effects.c:290
gap copy_gap(gap p)
GAP.
Definition: effects.c:631
bool effect_consistent_p(effect p)
Definition: effects.c:457
list gen_path_selectors_cons(path_selectors p, list l)
Definition: effects.c:786
void write_path_selectors(FILE *f, path_selectors p)
Definition: effects.c:800
effects apply_statement_effects(statement_effects f, statement k)
Definition: effects.c:1007
void write_cell(FILE *f, cell p)
Definition: effects.c:276
action make_action(enum action_utype tag, void *val)
Definition: effects.c:120
path_selectors make_path_selectors(list a)
Definition: effects.c:806
path_selector make_path_selector(enum path_selector_utype tag, void *val)
Definition: effects.c:758
effect check_effect(effect p)
Definition: effects.c:454
list gen_effect_cons(effect p, list l)
Definition: effects.c:464
void cell_relations_assign_contents(cell_relations r, cell_relations v)
Definition: effects.c:366
void free_cell(cell p)
Definition: effects.c:249
cell_interpretation make_cell_interpretation_address_of(void)
Definition: effects.c:240
effects apply_entity_effects(entity_effects f, entity k)
Definition: effects.c:613
string cell_tag_as_string(enum cell_utype tag)
Definition: effects.c:282
void extend_statement_effects(statement_effects f, statement k, effects v)
Definition: effects.c:1013
bool gap_defined_p(gap p)
Definition: effects.c:644
void statement_cell_relations_non_recursive_free(statement_cell_relations p)
Definition: effects.c:937
void free_gap(gap p)
Definition: effects.c:634
bool persistant_expression_to_effects_consistent_p(persistant_expression_to_effects p)
Definition: effects.c:821
void write_gap(FILE *f, gap p)
Definition: effects.c:661
bool action_defined_p(action p)
Definition: effects.c:90
bool cell_relation_consistent_p(cell_relation p)
Definition: effects.c:314
bool path_selectors_consistent_p(path_selectors p)
Definition: effects.c:779
void write_effect(FILE *f, effect p)
Definition: effects.c:478
action read_action(FILE *f)
Definition: effects.c:110
bool path_selector_defined_p(path_selector p)
Definition: effects.c:728
effects_classes read_effects_classes(FILE *f)
Definition: effects.c:523
cell_relations make_cell_relations(list a)
Definition: effects.c:383
action_kind check_action_kind(action_kind p)
Definition: effects.c:24
void write_path_selector(FILE *f, path_selector p)
Definition: effects.c:745
void free_action_kind(action_kind p)
Definition: effects.c:21
void update_persistant_expression_to_effects(persistant_expression_to_effects f, expression k, effects v)
Definition: effects.c:854
void free_path_selector(path_selector p)
Definition: effects.c:718
entity_effects read_entity_effects(FILE *f)
Definition: effects.c:607
void cell_assign_contents(cell r, cell v)
Definition: effects.c:265
approximation make_approximation_exact(void)
Definition: effects.c:185
void path_selector_non_recursive_free(path_selector p)
Definition: effects.c:741
void gap_non_recursive_free(gap p)
Definition: effects.c:657
approximation make_approximation(enum approximation_utype tag, void *val)
Definition: effects.c:176
action make_action_write(action_kind _field_)
Definition: effects.c:126
bool effects_classes_defined_p(effects_classes p)
Definition: effects.c:503
statement_effects read_statement_effects(FILE *f)
Definition: effects.c:1001
effects copy_effects(effects p)
EFFECTS.
Definition: effects.c:532
recursive_selector check_recursive_selector(recursive_selector p)
Definition: effects.c:875
list gen_effects_cons(effects p, list l)
Definition: effects.c:548
cell_relations check_cell_relations(cell_relations p)
Definition: effects.c:353
void write_action(FILE *f, action p)
Definition: effects.c:107
list gen_cell_relation_cons(cell_relation p, list l)
Definition: effects.c:321
effect read_effect(FILE *f)
Definition: effects.c:481
void free_action(action p)
Definition: effects.c:80
bool gap_consistent_p(gap p)
Definition: effects.c:640
bool effect_defined_p(effect p)
Definition: effects.c:461
approximation copy_approximation(approximation p)
APPROXIMATION.
Definition: effects.c:132
bool entity_effects_defined_p(entity_effects p)
Definition: effects.c:587
void entity_effects_non_recursive_free(entity_effects p)
Definition: effects.c:600
bool recursive_selector_defined_p(recursive_selector p)
Definition: effects.c:882
void free_recursive_selector(recursive_selector p)
Definition: effects.c:872
void free_statement_cell_relations(statement_cell_relations p)
Definition: effects.c:914
approximation make_approximation_may(void)
Definition: effects.c:179
void recursive_selector_assign_contents(recursive_selector r, recursive_selector v)
Definition: effects.c:888
list gen_cell_interpretation_cons(cell_interpretation p, list l)
Definition: effects.c:207
list gen_approximation_cons(approximation p, list l)
Definition: effects.c:148
void action_kind_assign_contents(action_kind r, action_kind v)
Definition: effects.c:37
approximation check_approximation(approximation p)
Definition: effects.c:138
effect make_effect(cell a1, action a2, approximation a3, descriptor a4)
Definition: effects.c:484
void free_effects(effects p)
Definition: effects.c:535
void write_cell_relation(FILE *f, cell_relation p)
Definition: effects.c:335
path_selector read_path_selector(FILE *f)
Definition: effects.c:748
void write_entity_effects(FILE *f, entity_effects p)
Definition: effects.c:604
void write_effects_classes(FILE *f, effects_classes p)
Definition: effects.c:520
bool cell_consistent_p(cell p)
Definition: effects.c:255
string path_selector_tag_as_string(enum path_selector_utype tag)
Definition: effects.c:751
descriptor check_descriptor(descriptor p)
Definition: effects.c:395
void free_interpreted_cell(interpreted_cell p)
Definition: effects.c:676
persistant_expression_to_effects read_persistant_expression_to_effects(FILE *f)
Definition: effects.c:845
void update_statement_effects(statement_effects f, statement k, effects v)
Definition: effects.c:1010
bool persistant_expression_to_effects_defined_p(persistant_expression_to_effects p)
Definition: effects.c:825
cell_relation copy_cell_relation(cell_relation p)
CELL_RELATION.
Definition: effects.c:305
descriptor copy_descriptor(descriptor p)
DESCRIPTOR.
Definition: effects.c:389
cell_relation read_cell_relation(FILE *f)
Definition: effects.c:338
void action_assign_contents(action r, action v)
Definition: effects.c:96
approximation read_approximation(FILE *f)
Definition: effects.c:165
effect copy_effect(effect p)
EFFECT.
Definition: effects.c:448
bool approximation_consistent_p(approximation p)
Definition: effects.c:141
string cell_interpretation_tag_as_string(enum cell_interpretation_utype tag)
Definition: effects.c:227
descriptor make_descriptor_none(void)
Definition: effects.c:442
void free_cell_interpretation(cell_interpretation p)
Definition: effects.c:194
effects_classes check_effects_classes(effects_classes p)
Definition: effects.c:496
cell read_cell(FILE *f)
Definition: effects.c:279
persistant_expression_to_effects check_persistant_expression_to_effects(persistant_expression_to_effects p)
Definition: effects.c:818
path_selectors check_path_selectors(path_selectors p)
Definition: effects.c:776
list gen_descriptor_cons(descriptor p, list l)
Definition: effects.c:405
cell_interpretation check_cell_interpretation(cell_interpretation p)
Definition: effects.c:197
void write_approximation(FILE *f, approximation p)
Definition: effects.c:162
action check_action(action p)
Definition: effects.c:83
entity_effects make_entity_effects(void)
Definition: effects.c:610
cell_interpretation copy_cell_interpretation(cell_interpretation p)
CELL_INTERPRETATION.
Definition: effects.c:191
bool descriptor_consistent_p(descriptor p)
Definition: effects.c:398
cell make_cell_preference(preference _field_)
Definition: effects.c:296
effects delete_persistant_expression_to_effects(persistant_expression_to_effects f, expression k)
Definition: effects.c:860
void path_selector_assign_contents(path_selector r, path_selector v)
Definition: effects.c:734
void effects_classes_non_recursive_free(effects_classes p)
Definition: effects.c:516
void interpreted_cell_non_recursive_free(interpreted_cell p)
Definition: effects.c:699
list gen_path_selector_cons(path_selector p, list l)
Definition: effects.c:731
descriptor read_descriptor(FILE *f)
Definition: effects.c:422
void cell_relation_assign_contents(cell_relation r, cell_relation v)
Definition: effects.c:324
cell copy_cell(cell p)
CELL.
Definition: effects.c:246
void free_cell_relations(cell_relations p)
Definition: effects.c:350
void descriptor_non_recursive_free(descriptor p)
Definition: effects.c:415
void path_selectors_non_recursive_free(path_selectors p)
Definition: effects.c:796
void free_approximation(approximation p)
Definition: effects.c:135
gap make_gap(entity a1, path_selectors a2)
Definition: effects.c:667
void effects_assign_contents(effects r, effects v)
Definition: effects.c:551
list gen_cell_cons(cell p, list l)
Definition: effects.c:262
bool cell_interpretation_consistent_p(cell_interpretation p)
Definition: effects.c:200
statement_cell_relations copy_statement_cell_relations(statement_cell_relations p)
STATEMENT_CELL_RELATIONS.
Definition: effects.c:911
list gen_statement_cell_relations_cons(statement_cell_relations p, list l)
Definition: effects.c:927
effects_classes copy_effects_classes(effects_classes p)
EFFECTS_CLASSES.
Definition: effects.c:490
list gen_cell_relations_cons(cell_relations p, list l)
Definition: effects.c:363
statement_effects make_statement_effects(void)
Definition: effects.c:1004
bool path_selectors_defined_p(path_selectors p)
Definition: effects.c:783
statement_cell_relations make_statement_cell_relations(void)
Definition: effects.c:947
void * Psysteme
Definition: effects.c:7
list gen_interpreted_cell_cons(interpreted_cell p, list l)
Definition: effects.c:689
void free_descriptor(descriptor p)
Definition: effects.c:392
void recursive_selector_non_recursive_free(recursive_selector p)
Definition: effects.c:895
void write_action_kind(FILE *f, action_kind p)
Definition: effects.c:48
bool interpreted_cell_defined_p(interpreted_cell p)
Definition: effects.c:686
void update_statement_cell_relations(statement_cell_relations f, statement k, cell_relations v)
Definition: effects.c:953
bool cell_relation_defined_p(cell_relation p)
Definition: effects.c:318
void path_selectors_assign_contents(path_selectors r, path_selectors v)
Definition: effects.c:789
string descriptor_tag_as_string(enum descriptor_utype tag)
Definition: effects.c:425
void write_persistant_expression_to_effects(FILE *f, persistant_expression_to_effects p)
Definition: effects.c:842
void extend_persistant_expression_to_effects(persistant_expression_to_effects f, expression k, effects v)
Definition: effects.c:857
list gen_effects_classes_cons(effects_classes p, list l)
Definition: effects.c:506
bool effects_classes_consistent_p(effects_classes p)
Definition: effects.c:499
void gap_assign_contents(gap r, gap v)
Definition: effects.c:650
bool action_kind_consistent_p(action_kind p)
Definition: effects.c:27
bool cell_relations_defined_p(cell_relations p)
Definition: effects.c:360
#define ACTION_NEWGEN_DOMAIN
Definition: compsec.h:19
#define EFFECT_NEWGEN_DOMAIN
Definition: dg.h:19
#define cell_relations_domain
newgen_cell_relation_domain_defined
Definition: effects.h:101
#define RECURSIVE_SELECTOR_NEWGEN_DOMAIN
Definition: effects.h:192
#define action_kind_domain
newgen_Psysteme_domain_defined
Definition: effects.h:53
#define PATH_SELECTORS_NEWGEN_DOMAIN
Definition: effects.h:176
#define persistant_expression_to_effects_hash_table(x)
Definition: effects.h:936
#define CELL_RELATION_NEWGEN_DOMAIN
Definition: effects.h:96
path_selector_utype
Definition: effects.h:847
@ is_path_selector_expression
Definition: effects.h:848
@ is_path_selector_recursive_selector
Definition: effects.h:849
#define interpreted_cell_domain
newgen_gap_domain_defined
Definition: effects.h:157
#define cell_relation_domain
newgen_cell_domain_defined
Definition: effects.h:93
#define ENTITY_EFFECTS_NEWGEN_DOMAIN
Definition: effects.h:144
#define DESCRIPTOR_NEWGEN_DOMAIN
Definition: effects.h:112
#define statement_effects_hash_table(x)
Definition: effects.h:1054
#define ACTION_KIND_NEWGEN_DOMAIN
Definition: effects.h:56
#define cell_interpretation_domain
newgen_approximation_domain_defined
Definition: effects.h:77
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
#define CELL_RELATIONS_NEWGEN_DOMAIN
Definition: effects.h:104
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
#define entity_effects_domain
newgen_effects_domain_defined
Definition: effects.h:141
#define persistant_expression_to_effects_domain
newgen_path_selectors_domain_defined
Definition: effects.h:181
#define INTERPRETED_CELL_NEWGEN_DOMAIN
Definition: effects.h:160
#define statement_cell_relations_domain
newgen_recursive_selector_domain_defined
Definition: effects.h:197
#define entity_effects_hash_table(x)
Definition: effects.h:742
#define EFFECTS_CLASSES_NEWGEN_DOMAIN
Definition: effects.h:128
#define GAP_NEWGEN_DOMAIN
Definition: effects.h:152
#define STATEMENT_CELL_RELATIONS_NEWGEN_DOMAIN
Definition: effects.h:200
#define statement_cell_relations_hash_table(x)
Definition: effects.h:1013
#define effects_classes_domain
newgen_effect_domain_defined
Definition: effects.h:125
#define action_domain
newgen_action_kind_domain_defined
Definition: effects.h:61
#define PERSISTANT_EXPRESSION_TO_EFFECTS_NEWGEN_DOMAIN
Definition: effects.h:184
#define approximation_domain
newgen_action_domain_defined
Definition: effects.h:69
#define PATH_SELECTOR_NEWGEN_DOMAIN
Definition: effects.h:168
#define cell_domain
newgen_cell_interpretation_domain_defined
Definition: effects.h:85
#define effects_domain
newgen_effects_classes_domain_defined
Definition: effects.h:133
#define recursive_selector_domain
newgen_persistant_expression_to_effects_domain_defined
Definition: effects.h:189
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
#define path_selector_domain
newgen_interpreted_cell_domain_defined
Definition: effects.h:165
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
#define descriptor_domain
newgen_cell_relations_domain_defined
Definition: effects.h:109
#define APPROXIMATION_NEWGEN_DOMAIN
Definition: effects.h:72
#define CELL_INTERPRETATION_NEWGEN_DOMAIN
Definition: effects.h:80
#define statement_effects_domain
newgen_statement_cell_relations_domain_defined
Definition: effects.h:205
#define gap_domain
newgen_entity_effects_domain_defined
Definition: effects.h:149
action_utype
Definition: effects.h:291
@ is_action_write
Definition: effects.h:293
@ is_action_read
Definition: effects.h:292
#define CELL_NEWGEN_DOMAIN
Definition: effects.h:88
#define effect_domain
newgen_descriptor_domain_defined
Definition: effects.h:117
#define path_selectors_domain
newgen_path_selector_domain_defined
Definition: effects.h:173
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
#define STATEMENT_EFFECTS_NEWGEN_DOMAIN
Definition: effects.h:208
#define EFFECTS_NEWGEN_DOMAIN
Definition: effects.h:136
#define GEN_CHECK_ALLOC
Definition: genC.h:307
void gen_free(gen_chunk *obj)
version without shared_pointers.
Definition: genClib.c:992
gen_chunk * gen_alloc(int size, int gen_check_p, int dom,...)
allocates something in newgen.
Definition: genClib.c:298
int gen_consistent_p(gen_chunk *obj)
GEN_CONSISTENT_P dynamically checks the type correctness of OBJ.
Definition: genClib.c:2398
int gen_defined_p(gen_chunk *obj)
Definition: genClib.c:2438
gen_chunk * gen_check(gen_chunk *obj, int t)
GEN_CHECK checks that the gen_chunk received OBJ is of the appropriate TYPE.
Definition: genClib.c:2356
gen_chunk * gen_read(FILE *file)
GEN_READ reads any object from the FILE stream.
Definition: genClib.c:2323
gen_chunk * gen_copy_tree(gen_chunk *obj)
Definition: genClib.c:1429
void gen_write(FILE *fd, gen_chunk *obj)
GEN_WRITE writes the OBJect on the stream FD.
Definition: genClib.c:1745
void free(void *)
list gen_typed_cons(_int type, const void *item, const list next)
CONS a list with minimal type checking this cannot be done within the CONS macro because possible fun...
Definition: list.c:900
#define message_assert(msg, ex)
Definition: newgen_assert.h:47
#define HASH_GET(start, image, h, k)
Definition: newgen_map.h:30
#define HASH_EXTEND(start, image, h, k, v)
Definition: newgen_map.h:36
#define HASH_DELETE(start, image, h, k)
Definition: newgen_map.h:38
#define HASH_UPDATE(start, image, h, k, v)
Definition: newgen_map.h:34
#define HASH_BOUND_P(start, image, h, k)
Definition: newgen_map.h:32
int tag
TAG.
Definition: newgen_types.h:92
#define string_undefined
Definition: newgen_types.h:40
#define UU
Definition: newgen_types.h:98
int f(int off1, int off2, int n, float r[n], float a[n], float b[n])
Definition: offsets.c:15
#define intptr_t
Definition: stdint.in.h:294
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