13#ifndef MCRL2_PROCESS_SPECIFICATION_H
17#ifndef MCRL2_PROCESS_TRAVERSER_H
18#define MCRL2_PROCESS_TRAVERSER_H
32template <
template <
class>
class Traverser,
class Derived>
35 typedef Traverser<Derived>
super;
42 static_cast<Derived&
>(*this).enter(x);
43 static_cast<Derived&
>(*this).apply(x.
sorts());
44 static_cast<Derived&
>(*this).leave(x);
49 static_cast<Derived&
>(*this).enter(x);
52 static_cast<Derived&
>(*this).apply(x.
equations());
53 static_cast<Derived&
>(*this).apply(x.
init());
54 static_cast<Derived&
>(*this).leave(x);
59 static_cast<Derived&
>(*this).enter(x);
60 static_cast<Derived&
>(*this).apply(x.
variables());
61 static_cast<Derived&
>(*this).leave(x);
66 static_cast<Derived&
>(*this).enter(x);
67 static_cast<Derived&
>(*this).apply(x.
identifier());
69 static_cast<Derived&
>(*this).apply(x.
expression());
70 static_cast<Derived&
>(*this).leave(x);
75 static_cast<Derived&
>(*this).enter(x);
76 static_cast<Derived&
>(*this).apply(x.
actions());
77 static_cast<Derived&
>(*this).leave(x);
82 static_cast<Derived&
>(*this).enter(x);
83 static_cast<Derived&
>(*this).apply(x.
label());
84 static_cast<Derived&
>(*this).apply(x.
arguments());
85 static_cast<Derived&
>(*this).leave(x);
90 static_cast<Derived&
>(*this).enter(x);
91 static_cast<Derived&
>(*this).apply(x.
identifier());
93 static_cast<Derived&
>(*this).leave(x);
98 static_cast<Derived&
>(*this).enter(x);
99 static_cast<Derived&
>(*this).apply(x.
identifier());
100 static_cast<Derived&
>(*this).apply(x.
assignments());
101 static_cast<Derived&
>(*this).leave(x);
106 static_cast<Derived&
>(*this).enter(x);
108 static_cast<Derived&
>(*this).leave(x);
113 static_cast<Derived&
>(*this).enter(x);
115 static_cast<Derived&
>(*this).leave(x);
120 static_cast<Derived&
>(*this).enter(x);
121 static_cast<Derived&
>(*this).apply(x.
variables());
122 static_cast<Derived&
>(*this).apply(x.
operand());
123 static_cast<Derived&
>(*this).leave(x);
128 static_cast<Derived&
>(*this).enter(x);
129 static_cast<Derived&
>(*this).apply(x.
operand());
130 static_cast<Derived&
>(*this).leave(x);
135 static_cast<Derived&
>(*this).enter(x);
136 static_cast<Derived&
>(*this).apply(x.
operand());
137 static_cast<Derived&
>(*this).leave(x);
142 static_cast<Derived&
>(*this).enter(x);
143 static_cast<Derived&
>(*this).apply(x.
operand());
144 static_cast<Derived&
>(*this).leave(x);
149 static_cast<Derived&
>(*this).enter(x);
150 static_cast<Derived&
>(*this).apply(x.
operand());
151 static_cast<Derived&
>(*this).leave(x);
156 static_cast<Derived&
>(*this).enter(x);
157 static_cast<Derived&
>(*this).apply(x.
operand());
158 static_cast<Derived&
>(*this).leave(x);
163 static_cast<Derived&
>(*this).enter(x);
164 static_cast<Derived&
>(*this).apply(x.
left());
165 static_cast<Derived&
>(*this).apply(x.
right());
166 static_cast<Derived&
>(*this).leave(x);
171 static_cast<Derived&
>(*this).enter(x);
172 static_cast<Derived&
>(*this).apply(x.
operand());
173 static_cast<Derived&
>(*this).apply(x.
time_stamp());
174 static_cast<Derived&
>(*this).leave(x);
179 static_cast<Derived&
>(*this).enter(x);
180 static_cast<Derived&
>(*this).apply(x.
left());
181 static_cast<Derived&
>(*this).apply(x.
right());
182 static_cast<Derived&
>(*this).leave(x);
187 static_cast<Derived&
>(*this).enter(x);
188 static_cast<Derived&
>(*this).apply(x.
condition());
189 static_cast<Derived&
>(*this).apply(x.
then_case());
190 static_cast<Derived&
>(*this).leave(x);
195 static_cast<Derived&
>(*this).enter(x);
196 static_cast<Derived&
>(*this).apply(x.
condition());
197 static_cast<Derived&
>(*this).apply(x.
then_case());
198 static_cast<Derived&
>(*this).apply(x.
else_case());
199 static_cast<Derived&
>(*this).leave(x);
204 static_cast<Derived&
>(*this).enter(x);
205 static_cast<Derived&
>(*this).apply(x.
left());
206 static_cast<Derived&
>(*this).apply(x.
right());
207 static_cast<Derived&
>(*this).leave(x);
212 static_cast<Derived&
>(*this).enter(x);
213 static_cast<Derived&
>(*this).apply(x.
left());
214 static_cast<Derived&
>(*this).apply(x.
right());
215 static_cast<Derived&
>(*this).leave(x);
220 static_cast<Derived&
>(*this).enter(x);
221 static_cast<Derived&
>(*this).apply(x.
left());
222 static_cast<Derived&
>(*this).apply(x.
right());
223 static_cast<Derived&
>(*this).leave(x);
228 static_cast<Derived&
>(*this).enter(x);
229 static_cast<Derived&
>(*this).apply(x.
left());
230 static_cast<Derived&
>(*this).apply(x.
right());
231 static_cast<Derived&
>(*this).leave(x);
236 static_cast<Derived&
>(*this).enter(x);
237 static_cast<Derived&
>(*this).apply(x.
variables());
239 static_cast<Derived&
>(*this).apply(x.
operand());
240 static_cast<Derived&
>(*this).leave(x);
245 static_cast<Derived&
>(*this).enter(x);
246 static_cast<Derived&
>(*this).apply(x.
assignments());
247 static_cast<Derived&
>(*this).leave(x);
252 static_cast<Derived&
>(*this).enter(x);
255 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
259 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::action>(x));
263 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::process_instance>(x));
267 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::process_instance_assignment>(x));
271 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::delta>(x));
275 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::tau>(x));
279 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::sum>(x));
283 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::block>(x));
287 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::hide>(x));
291 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::rename>(x));
295 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::comm>(x));
299 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::allow>(x));
303 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::sync>(x));
307 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::at>(x));
311 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::seq>(x));
315 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::if_then>(x));
319 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::if_then_else>(x));
323 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::bounded_init>(x));
327 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::merge>(x));
331 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::left_merge>(x));
335 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::choice>(x));
339 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::stochastic_operator>(x));
343 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::untyped_process_assignment>(x));
345 static_cast<Derived&
>(*this).leave(x);
351template <
typename Derived>
358template <
template <
class>
class Traverser,
class Derived>
368 static_cast<Derived&
>(*this).enter(x);
369 static_cast<Derived&
>(*this).apply(x.
equations());
370 static_cast<Derived&
>(*this).apply(x.
init());
371 static_cast<Derived&
>(*this).leave(x);
376 static_cast<Derived&
>(*this).enter(x);
377 static_cast<Derived&
>(*this).apply(x.
expression());
378 static_cast<Derived&
>(*this).leave(x);
383 static_cast<Derived&
>(*this).enter(x);
384 static_cast<Derived&
>(*this).apply(x.
actions());
385 static_cast<Derived&
>(*this).leave(x);
390 static_cast<Derived&
>(*this).enter(x);
391 static_cast<Derived&
>(*this).apply(x.
arguments());
392 static_cast<Derived&
>(*this).leave(x);
397 static_cast<Derived&
>(*this).enter(x);
399 static_cast<Derived&
>(*this).leave(x);
404 static_cast<Derived&
>(*this).enter(x);
405 static_cast<Derived&
>(*this).apply(x.
assignments());
406 static_cast<Derived&
>(*this).leave(x);
411 static_cast<Derived&
>(*this).enter(x);
413 static_cast<Derived&
>(*this).leave(x);
418 static_cast<Derived&
>(*this).enter(x);
420 static_cast<Derived&
>(*this).leave(x);
425 static_cast<Derived&
>(*this).enter(x);
426 static_cast<Derived&
>(*this).apply(x.
operand());
427 static_cast<Derived&
>(*this).leave(x);
432 static_cast<Derived&
>(*this).enter(x);
433 static_cast<Derived&
>(*this).apply(x.
operand());
434 static_cast<Derived&
>(*this).leave(x);
439 static_cast<Derived&
>(*this).enter(x);
440 static_cast<Derived&
>(*this).apply(x.
operand());
441 static_cast<Derived&
>(*this).leave(x);
446 static_cast<Derived&
>(*this).enter(x);
447 static_cast<Derived&
>(*this).apply(x.
operand());
448 static_cast<Derived&
>(*this).leave(x);
453 static_cast<Derived&
>(*this).enter(x);
454 static_cast<Derived&
>(*this).apply(x.
operand());
455 static_cast<Derived&
>(*this).leave(x);
460 static_cast<Derived&
>(*this).enter(x);
461 static_cast<Derived&
>(*this).apply(x.
operand());
462 static_cast<Derived&
>(*this).leave(x);
467 static_cast<Derived&
>(*this).enter(x);
468 static_cast<Derived&
>(*this).apply(x.
left());
469 static_cast<Derived&
>(*this).apply(x.
right());
470 static_cast<Derived&
>(*this).leave(x);
475 static_cast<Derived&
>(*this).enter(x);
476 static_cast<Derived&
>(*this).apply(x.
operand());
477 static_cast<Derived&
>(*this).apply(x.
time_stamp());
478 static_cast<Derived&
>(*this).leave(x);
483 static_cast<Derived&
>(*this).enter(x);
484 static_cast<Derived&
>(*this).apply(x.
left());
485 static_cast<Derived&
>(*this).apply(x.
right());
486 static_cast<Derived&
>(*this).leave(x);
491 static_cast<Derived&
>(*this).enter(x);
492 static_cast<Derived&
>(*this).apply(x.
condition());
493 static_cast<Derived&
>(*this).apply(x.
then_case());
494 static_cast<Derived&
>(*this).leave(x);
499 static_cast<Derived&
>(*this).enter(x);
500 static_cast<Derived&
>(*this).apply(x.
condition());
501 static_cast<Derived&
>(*this).apply(x.
then_case());
502 static_cast<Derived&
>(*this).apply(x.
else_case());
503 static_cast<Derived&
>(*this).leave(x);
508 static_cast<Derived&
>(*this).enter(x);
509 static_cast<Derived&
>(*this).apply(x.
left());
510 static_cast<Derived&
>(*this).apply(x.
right());
511 static_cast<Derived&
>(*this).leave(x);
516 static_cast<Derived&
>(*this).enter(x);
517 static_cast<Derived&
>(*this).apply(x.
left());
518 static_cast<Derived&
>(*this).apply(x.
right());
519 static_cast<Derived&
>(*this).leave(x);
524 static_cast<Derived&
>(*this).enter(x);
525 static_cast<Derived&
>(*this).apply(x.
left());
526 static_cast<Derived&
>(*this).apply(x.
right());
527 static_cast<Derived&
>(*this).leave(x);
532 static_cast<Derived&
>(*this).enter(x);
533 static_cast<Derived&
>(*this).apply(x.
left());
534 static_cast<Derived&
>(*this).apply(x.
right());
535 static_cast<Derived&
>(*this).leave(x);
540 static_cast<Derived&
>(*this).enter(x);
542 static_cast<Derived&
>(*this).apply(x.
operand());
543 static_cast<Derived&
>(*this).leave(x);
548 static_cast<Derived&
>(*this).enter(x);
549 static_cast<Derived&
>(*this).apply(x.
assignments());
550 static_cast<Derived&
>(*this).leave(x);
555 static_cast<Derived&
>(*this).enter(x);
558 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
562 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::action>(x));
566 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::process_instance>(x));
570 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::process_instance_assignment>(x));
574 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::delta>(x));
578 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::tau>(x));
582 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::sum>(x));
586 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::block>(x));
590 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::hide>(x));
594 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::rename>(x));
598 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::comm>(x));
602 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::allow>(x));
606 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::sync>(x));
610 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::at>(x));
614 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::seq>(x));
618 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::if_then>(x));
622 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::if_then_else>(x));
626 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::bounded_init>(x));
630 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::merge>(x));
634 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::left_merge>(x));
638 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::choice>(x));
642 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::stochastic_operator>(x));
646 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::untyped_process_assignment>(x));
648 static_cast<Derived&
>(*this).leave(x);
654template <
typename Derived>
661template <
template <
class>
class Traverser,
class Derived>
671 static_cast<Derived&
>(*this).enter(x);
672 static_cast<Derived&
>(*this).apply(x.
equations());
673 static_cast<Derived&
>(*this).apply(x.
init());
674 static_cast<Derived&
>(*this).leave(x);
679 static_cast<Derived&
>(*this).enter(x);
680 static_cast<Derived&
>(*this).apply(x.
expression());
681 static_cast<Derived&
>(*this).leave(x);
686 static_cast<Derived&
>(*this).enter(x);
688 static_cast<Derived&
>(*this).leave(x);
693 static_cast<Derived&
>(*this).enter(x);
695 static_cast<Derived&
>(*this).leave(x);
700 static_cast<Derived&
>(*this).enter(x);
702 static_cast<Derived&
>(*this).leave(x);
707 static_cast<Derived&
>(*this).enter(x);
709 static_cast<Derived&
>(*this).leave(x);
714 static_cast<Derived&
>(*this).enter(x);
716 static_cast<Derived&
>(*this).leave(x);
721 static_cast<Derived&
>(*this).enter(x);
722 static_cast<Derived&
>(*this).apply(x.
operand());
723 static_cast<Derived&
>(*this).leave(x);
728 static_cast<Derived&
>(*this).enter(x);
729 static_cast<Derived&
>(*this).apply(x.
operand());
730 static_cast<Derived&
>(*this).leave(x);
735 static_cast<Derived&
>(*this).enter(x);
736 static_cast<Derived&
>(*this).apply(x.
operand());
737 static_cast<Derived&
>(*this).leave(x);
742 static_cast<Derived&
>(*this).enter(x);
743 static_cast<Derived&
>(*this).apply(x.
operand());
744 static_cast<Derived&
>(*this).leave(x);
749 static_cast<Derived&
>(*this).enter(x);
750 static_cast<Derived&
>(*this).apply(x.
operand());
751 static_cast<Derived&
>(*this).leave(x);
756 static_cast<Derived&
>(*this).enter(x);
757 static_cast<Derived&
>(*this).apply(x.
operand());
758 static_cast<Derived&
>(*this).leave(x);
763 static_cast<Derived&
>(*this).enter(x);
764 static_cast<Derived&
>(*this).apply(x.
left());
765 static_cast<Derived&
>(*this).apply(x.
right());
766 static_cast<Derived&
>(*this).leave(x);
771 static_cast<Derived&
>(*this).enter(x);
772 static_cast<Derived&
>(*this).apply(x.
operand());
773 static_cast<Derived&
>(*this).leave(x);
778 static_cast<Derived&
>(*this).enter(x);
779 static_cast<Derived&
>(*this).apply(x.
left());
780 static_cast<Derived&
>(*this).apply(x.
right());
781 static_cast<Derived&
>(*this).leave(x);
786 static_cast<Derived&
>(*this).enter(x);
787 static_cast<Derived&
>(*this).apply(x.
then_case());
788 static_cast<Derived&
>(*this).leave(x);
793 static_cast<Derived&
>(*this).enter(x);
794 static_cast<Derived&
>(*this).apply(x.
then_case());
795 static_cast<Derived&
>(*this).apply(x.
else_case());
796 static_cast<Derived&
>(*this).leave(x);
801 static_cast<Derived&
>(*this).enter(x);
802 static_cast<Derived&
>(*this).apply(x.
left());
803 static_cast<Derived&
>(*this).apply(x.
right());
804 static_cast<Derived&
>(*this).leave(x);
809 static_cast<Derived&
>(*this).enter(x);
810 static_cast<Derived&
>(*this).apply(x.
left());
811 static_cast<Derived&
>(*this).apply(x.
right());
812 static_cast<Derived&
>(*this).leave(x);
817 static_cast<Derived&
>(*this).enter(x);
818 static_cast<Derived&
>(*this).apply(x.
left());
819 static_cast<Derived&
>(*this).apply(x.
right());
820 static_cast<Derived&
>(*this).leave(x);
825 static_cast<Derived&
>(*this).enter(x);
826 static_cast<Derived&
>(*this).apply(x.
left());
827 static_cast<Derived&
>(*this).apply(x.
right());
828 static_cast<Derived&
>(*this).leave(x);
833 static_cast<Derived&
>(*this).enter(x);
834 static_cast<Derived&
>(*this).apply(x.
operand());
835 static_cast<Derived&
>(*this).leave(x);
840 static_cast<Derived&
>(*this).enter(x);
842 static_cast<Derived&
>(*this).leave(x);
847 static_cast<Derived&
>(*this).enter(x);
850 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
854 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::action>(x));
858 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::process_instance>(x));
862 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::process_instance_assignment>(x));
866 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::delta>(x));
870 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::tau>(x));
874 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::sum>(x));
878 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::block>(x));
882 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::hide>(x));
886 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::rename>(x));
890 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::comm>(x));
894 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::allow>(x));
898 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::sync>(x));
902 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::at>(x));
906 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::seq>(x));
910 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::if_then>(x));
914 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::if_then_else>(x));
918 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::bounded_init>(x));
922 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::merge>(x));
926 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::left_merge>(x));
930 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::choice>(x));
934 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::stochastic_operator>(x));
938 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::untyped_process_assignment>(x));
940 static_cast<Derived&
>(*this).leave(x);
946template <
typename Derived>
953template <
template <
class>
class Traverser,
class Derived>
963 static_cast<Derived&
>(*this).enter(x);
965 static_cast<Derived&
>(*this).apply(x.
equations());
966 static_cast<Derived&
>(*this).apply(x.
init());
967 static_cast<Derived&
>(*this).leave(x);
972 static_cast<Derived&
>(*this).enter(x);
973 static_cast<Derived&
>(*this).apply(x.
variables());
974 static_cast<Derived&
>(*this).leave(x);
979 static_cast<Derived&
>(*this).enter(x);
980 static_cast<Derived&
>(*this).apply(x.
identifier());
982 static_cast<Derived&
>(*this).apply(x.
expression());
983 static_cast<Derived&
>(*this).leave(x);
988 static_cast<Derived&
>(*this).enter(x);
989 static_cast<Derived&
>(*this).apply(x.
actions());
990 static_cast<Derived&
>(*this).leave(x);
995 static_cast<Derived&
>(*this).enter(x);
996 static_cast<Derived&
>(*this).apply(x.
arguments());
997 static_cast<Derived&
>(*this).leave(x);
1002 static_cast<Derived&
>(*this).enter(x);
1003 static_cast<Derived&
>(*this).apply(x.
identifier());
1005 static_cast<Derived&
>(*this).leave(x);
1010 static_cast<Derived&
>(*this).enter(x);
1011 static_cast<Derived&
>(*this).apply(x.
identifier());
1012 static_cast<Derived&
>(*this).apply(x.
assignments());
1013 static_cast<Derived&
>(*this).leave(x);
1018 static_cast<Derived&
>(*this).enter(x);
1020 static_cast<Derived&
>(*this).leave(x);
1025 static_cast<Derived&
>(*this).enter(x);
1027 static_cast<Derived&
>(*this).leave(x);
1032 static_cast<Derived&
>(*this).enter(x);
1033 static_cast<Derived&
>(*this).apply(x.
variables());
1034 static_cast<Derived&
>(*this).apply(x.
operand());
1035 static_cast<Derived&
>(*this).leave(x);
1040 static_cast<Derived&
>(*this).enter(x);
1041 static_cast<Derived&
>(*this).apply(x.
operand());
1042 static_cast<Derived&
>(*this).leave(x);
1047 static_cast<Derived&
>(*this).enter(x);
1048 static_cast<Derived&
>(*this).apply(x.
operand());
1049 static_cast<Derived&
>(*this).leave(x);
1054 static_cast<Derived&
>(*this).enter(x);
1055 static_cast<Derived&
>(*this).apply(x.
operand());
1056 static_cast<Derived&
>(*this).leave(x);
1061 static_cast<Derived&
>(*this).enter(x);
1062 static_cast<Derived&
>(*this).apply(x.
operand());
1063 static_cast<Derived&
>(*this).leave(x);
1068 static_cast<Derived&
>(*this).enter(x);
1069 static_cast<Derived&
>(*this).apply(x.
operand());
1070 static_cast<Derived&
>(*this).leave(x);
1075 static_cast<Derived&
>(*this).enter(x);
1076 static_cast<Derived&
>(*this).apply(x.
left());
1077 static_cast<Derived&
>(*this).apply(x.
right());
1078 static_cast<Derived&
>(*this).leave(x);
1083 static_cast<Derived&
>(*this).enter(x);
1084 static_cast<Derived&
>(*this).apply(x.
operand());
1085 static_cast<Derived&
>(*this).apply(x.
time_stamp());
1086 static_cast<Derived&
>(*this).leave(x);
1091 static_cast<Derived&
>(*this).enter(x);
1092 static_cast<Derived&
>(*this).apply(x.
left());
1093 static_cast<Derived&
>(*this).apply(x.
right());
1094 static_cast<Derived&
>(*this).leave(x);
1099 static_cast<Derived&
>(*this).enter(x);
1100 static_cast<Derived&
>(*this).apply(x.
condition());
1101 static_cast<Derived&
>(*this).apply(x.
then_case());
1102 static_cast<Derived&
>(*this).leave(x);
1107 static_cast<Derived&
>(*this).enter(x);
1108 static_cast<Derived&
>(*this).apply(x.
condition());
1109 static_cast<Derived&
>(*this).apply(x.
then_case());
1110 static_cast<Derived&
>(*this).apply(x.
else_case());
1111 static_cast<Derived&
>(*this).leave(x);
1116 static_cast<Derived&
>(*this).enter(x);
1117 static_cast<Derived&
>(*this).apply(x.
left());
1118 static_cast<Derived&
>(*this).apply(x.
right());
1119 static_cast<Derived&
>(*this).leave(x);
1124 static_cast<Derived&
>(*this).enter(x);
1125 static_cast<Derived&
>(*this).apply(x.
left());
1126 static_cast<Derived&
>(*this).apply(x.
right());
1127 static_cast<Derived&
>(*this).leave(x);
1132 static_cast<Derived&
>(*this).enter(x);
1133 static_cast<Derived&
>(*this).apply(x.
left());
1134 static_cast<Derived&
>(*this).apply(x.
right());
1135 static_cast<Derived&
>(*this).leave(x);
1140 static_cast<Derived&
>(*this).enter(x);
1141 static_cast<Derived&
>(*this).apply(x.
left());
1142 static_cast<Derived&
>(*this).apply(x.
right());
1143 static_cast<Derived&
>(*this).leave(x);
1148 static_cast<Derived&
>(*this).enter(x);
1149 static_cast<Derived&
>(*this).apply(x.
variables());
1151 static_cast<Derived&
>(*this).apply(x.
operand());
1152 static_cast<Derived&
>(*this).leave(x);
1157 static_cast<Derived&
>(*this).enter(x);
1158 static_cast<Derived&
>(*this).apply(x.
assignments());
1159 static_cast<Derived&
>(*this).leave(x);
1164 static_cast<Derived&
>(*this).enter(x);
1167 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
1171 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::action>(x));
1175 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::process_instance>(x));
1179 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::process_instance_assignment>(x));
1183 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::delta>(x));
1187 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::tau>(x));
1191 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::sum>(x));
1195 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::block>(x));
1199 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::hide>(x));
1203 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::rename>(x));
1207 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::comm>(x));
1211 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::allow>(x));
1215 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::sync>(x));
1219 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::at>(x));
1223 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::seq>(x));
1227 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::if_then>(x));
1231 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::if_then_else>(x));
1235 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::bounded_init>(x));
1239 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::merge>(x));
1243 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::left_merge>(x));
1247 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::choice>(x));
1251 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::stochastic_operator>(x));
1255 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::untyped_process_assignment>(x));
1257 static_cast<Derived&
>(*this).leave(x);
1263template <
typename Derived>
1270template <
template <
class>
class Traverser,
class Derived>
1280 static_cast<Derived&
>(*this).enter(x);
1281 static_cast<Derived&
>(*this).apply(x.
name());
1282 static_cast<Derived&
>(*this).apply(x.
sorts());
1283 static_cast<Derived&
>(*this).leave(x);
1288 static_cast<Derived&
>(*this).enter(x);
1291 static_cast<Derived&
>(*this).apply(x.
equations());
1292 static_cast<Derived&
>(*this).apply(x.
init());
1293 static_cast<Derived&
>(*this).leave(x);
1298 static_cast<Derived&
>(*this).enter(x);
1299 static_cast<Derived&
>(*this).apply(x.
name());
1300 static_cast<Derived&
>(*this).apply(x.
variables());
1301 static_cast<Derived&
>(*this).leave(x);
1306 static_cast<Derived&
>(*this).enter(x);
1307 static_cast<Derived&
>(*this).apply(x.
identifier());
1309 static_cast<Derived&
>(*this).apply(x.
expression());
1310 static_cast<Derived&
>(*this).leave(x);
1315 static_cast<Derived&
>(*this).enter(x);
1316 static_cast<Derived&
>(*this).apply(x.
source());
1317 static_cast<Derived&
>(*this).apply(x.
target());
1318 static_cast<Derived&
>(*this).leave(x);
1323 static_cast<Derived&
>(*this).enter(x);
1324 static_cast<Derived&
>(*this).apply(x.
action_name());
1325 static_cast<Derived&
>(*this).apply(x.
name());
1326 static_cast<Derived&
>(*this).leave(x);
1331 static_cast<Derived&
>(*this).enter(x);
1332 static_cast<Derived&
>(*this).apply(x.
names());
1333 static_cast<Derived&
>(*this).leave(x);
1338 static_cast<Derived&
>(*this).enter(x);
1339 static_cast<Derived&
>(*this).apply(x.
actions());
1340 static_cast<Derived&
>(*this).leave(x);
1345 static_cast<Derived&
>(*this).enter(x);
1346 static_cast<Derived&
>(*this).apply(x.
label());
1347 static_cast<Derived&
>(*this).apply(x.
arguments());
1348 static_cast<Derived&
>(*this).leave(x);
1353 static_cast<Derived&
>(*this).enter(x);
1354 static_cast<Derived&
>(*this).apply(x.
identifier());
1356 static_cast<Derived&
>(*this).leave(x);
1361 static_cast<Derived&
>(*this).enter(x);
1362 static_cast<Derived&
>(*this).apply(x.
identifier());
1363 static_cast<Derived&
>(*this).apply(x.
assignments());
1364 static_cast<Derived&
>(*this).leave(x);
1369 static_cast<Derived&
>(*this).enter(x);
1371 static_cast<Derived&
>(*this).leave(x);
1376 static_cast<Derived&
>(*this).enter(x);
1378 static_cast<Derived&
>(*this).leave(x);
1383 static_cast<Derived&
>(*this).enter(x);
1384 static_cast<Derived&
>(*this).apply(x.
variables());
1385 static_cast<Derived&
>(*this).apply(x.
operand());
1386 static_cast<Derived&
>(*this).leave(x);
1391 static_cast<Derived&
>(*this).enter(x);
1392 static_cast<Derived&
>(*this).apply(x.
block_set());
1393 static_cast<Derived&
>(*this).apply(x.
operand());
1394 static_cast<Derived&
>(*this).leave(x);
1399 static_cast<Derived&
>(*this).enter(x);
1400 static_cast<Derived&
>(*this).apply(x.
hide_set());
1401 static_cast<Derived&
>(*this).apply(x.
operand());
1402 static_cast<Derived&
>(*this).leave(x);
1407 static_cast<Derived&
>(*this).enter(x);
1408 static_cast<Derived&
>(*this).apply(x.
rename_set());
1409 static_cast<Derived&
>(*this).apply(x.
operand());
1410 static_cast<Derived&
>(*this).leave(x);
1415 static_cast<Derived&
>(*this).enter(x);
1416 static_cast<Derived&
>(*this).apply(x.
comm_set());
1417 static_cast<Derived&
>(*this).apply(x.
operand());
1418 static_cast<Derived&
>(*this).leave(x);
1423 static_cast<Derived&
>(*this).enter(x);
1424 static_cast<Derived&
>(*this).apply(x.
allow_set());
1425 static_cast<Derived&
>(*this).apply(x.
operand());
1426 static_cast<Derived&
>(*this).leave(x);
1431 static_cast<Derived&
>(*this).enter(x);
1432 static_cast<Derived&
>(*this).apply(x.
left());
1433 static_cast<Derived&
>(*this).apply(x.
right());
1434 static_cast<Derived&
>(*this).leave(x);
1439 static_cast<Derived&
>(*this).enter(x);
1440 static_cast<Derived&
>(*this).apply(x.
operand());
1441 static_cast<Derived&
>(*this).apply(x.
time_stamp());
1442 static_cast<Derived&
>(*this).leave(x);
1447 static_cast<Derived&
>(*this).enter(x);
1448 static_cast<Derived&
>(*this).apply(x.
left());
1449 static_cast<Derived&
>(*this).apply(x.
right());
1450 static_cast<Derived&
>(*this).leave(x);
1455 static_cast<Derived&
>(*this).enter(x);
1456 static_cast<Derived&
>(*this).apply(x.
condition());
1457 static_cast<Derived&
>(*this).apply(x.
then_case());
1458 static_cast<Derived&
>(*this).leave(x);
1463 static_cast<Derived&
>(*this).enter(x);
1464 static_cast<Derived&
>(*this).apply(x.
condition());
1465 static_cast<Derived&
>(*this).apply(x.
then_case());
1466 static_cast<Derived&
>(*this).apply(x.
else_case());
1467 static_cast<Derived&
>(*this).leave(x);
1472 static_cast<Derived&
>(*this).enter(x);
1473 static_cast<Derived&
>(*this).apply(x.
left());
1474 static_cast<Derived&
>(*this).apply(x.
right());
1475 static_cast<Derived&
>(*this).leave(x);
1480 static_cast<Derived&
>(*this).enter(x);
1481 static_cast<Derived&
>(*this).apply(x.
left());
1482 static_cast<Derived&
>(*this).apply(x.
right());
1483 static_cast<Derived&
>(*this).leave(x);
1488 static_cast<Derived&
>(*this).enter(x);
1489 static_cast<Derived&
>(*this).apply(x.
left());
1490 static_cast<Derived&
>(*this).apply(x.
right());
1491 static_cast<Derived&
>(*this).leave(x);
1496 static_cast<Derived&
>(*this).enter(x);
1497 static_cast<Derived&
>(*this).apply(x.
left());
1498 static_cast<Derived&
>(*this).apply(x.
right());
1499 static_cast<Derived&
>(*this).leave(x);
1504 static_cast<Derived&
>(*this).enter(x);
1505 static_cast<Derived&
>(*this).apply(x.
variables());
1507 static_cast<Derived&
>(*this).apply(x.
operand());
1508 static_cast<Derived&
>(*this).leave(x);
1513 static_cast<Derived&
>(*this).enter(x);
1514 static_cast<Derived&
>(*this).apply(x.
name());
1515 static_cast<Derived&
>(*this).apply(x.
assignments());
1516 static_cast<Derived&
>(*this).leave(x);
1521 static_cast<Derived&
>(*this).enter(x);
1524 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
1528 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::action>(x));
1532 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::process_instance>(x));
1536 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::process_instance_assignment>(x));
1540 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::delta>(x));
1544 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::tau>(x));
1548 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::sum>(x));
1552 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::block>(x));
1556 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::hide>(x));
1560 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::rename>(x));
1564 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::comm>(x));
1568 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::allow>(x));
1572 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::sync>(x));
1576 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::at>(x));
1580 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::seq>(x));
1584 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::if_then>(x));
1588 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::if_then_else>(x));
1592 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::bounded_init>(x));
1596 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::merge>(x));
1600 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::left_merge>(x));
1604 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::choice>(x));
1608 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::stochastic_operator>(x));
1612 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::untyped_process_assignment>(x));
1614 static_cast<Derived&
>(*this).leave(x);
1620template <
typename Derived>
1627template <
template <
class>
class Traverser,
class Derived>
1637 static_cast<Derived&
>(*this).enter(x);
1639 static_cast<Derived&
>(*this).leave(x);
1644 static_cast<Derived&
>(*this).enter(x);
1646 static_cast<Derived&
>(*this).apply(x.
equations());
1647 static_cast<Derived&
>(*this).apply(x.
init());
1648 static_cast<Derived&
>(*this).leave(x);
1653 static_cast<Derived&
>(*this).enter(x);
1654 static_cast<Derived&
>(*this).apply(x.
expression());
1655 static_cast<Derived&
>(*this).leave(x);
1660 static_cast<Derived&
>(*this).enter(x);
1661 static_cast<Derived&
>(*this).apply(x.
label());
1662 static_cast<Derived&
>(*this).leave(x);
1667 static_cast<Derived&
>(*this).enter(x);
1669 static_cast<Derived&
>(*this).leave(x);
1674 static_cast<Derived&
>(*this).enter(x);
1676 static_cast<Derived&
>(*this).leave(x);
1681 static_cast<Derived&
>(*this).enter(x);
1683 static_cast<Derived&
>(*this).leave(x);
1688 static_cast<Derived&
>(*this).enter(x);
1690 static_cast<Derived&
>(*this).leave(x);
1695 static_cast<Derived&
>(*this).enter(x);
1696 static_cast<Derived&
>(*this).apply(x.
operand());
1697 static_cast<Derived&
>(*this).leave(x);
1702 static_cast<Derived&
>(*this).enter(x);
1703 static_cast<Derived&
>(*this).apply(x.
operand());
1704 static_cast<Derived&
>(*this).leave(x);
1709 static_cast<Derived&
>(*this).enter(x);
1710 static_cast<Derived&
>(*this).apply(x.
operand());
1711 static_cast<Derived&
>(*this).leave(x);
1716 static_cast<Derived&
>(*this).enter(x);
1717 static_cast<Derived&
>(*this).apply(x.
operand());
1718 static_cast<Derived&
>(*this).leave(x);
1723 static_cast<Derived&
>(*this).enter(x);
1724 static_cast<Derived&
>(*this).apply(x.
operand());
1725 static_cast<Derived&
>(*this).leave(x);
1730 static_cast<Derived&
>(*this).enter(x);
1731 static_cast<Derived&
>(*this).apply(x.
operand());
1732 static_cast<Derived&
>(*this).leave(x);
1737 static_cast<Derived&
>(*this).enter(x);
1738 static_cast<Derived&
>(*this).apply(x.
left());
1739 static_cast<Derived&
>(*this).apply(x.
right());
1740 static_cast<Derived&
>(*this).leave(x);
1745 static_cast<Derived&
>(*this).enter(x);
1746 static_cast<Derived&
>(*this).apply(x.
operand());
1747 static_cast<Derived&
>(*this).leave(x);
1752 static_cast<Derived&
>(*this).enter(x);
1753 static_cast<Derived&
>(*this).apply(x.
left());
1754 static_cast<Derived&
>(*this).apply(x.
right());
1755 static_cast<Derived&
>(*this).leave(x);
1760 static_cast<Derived&
>(*this).enter(x);
1761 static_cast<Derived&
>(*this).apply(x.
then_case());
1762 static_cast<Derived&
>(*this).leave(x);
1767 static_cast<Derived&
>(*this).enter(x);
1768 static_cast<Derived&
>(*this).apply(x.
then_case());
1769 static_cast<Derived&
>(*this).apply(x.
else_case());
1770 static_cast<Derived&
>(*this).leave(x);
1775 static_cast<Derived&
>(*this).enter(x);
1776 static_cast<Derived&
>(*this).apply(x.
left());
1777 static_cast<Derived&
>(*this).apply(x.
right());
1778 static_cast<Derived&
>(*this).leave(x);
1783 static_cast<Derived&
>(*this).enter(x);
1784 static_cast<Derived&
>(*this).apply(x.
left());
1785 static_cast<Derived&
>(*this).apply(x.
right());
1786 static_cast<Derived&
>(*this).leave(x);
1791 static_cast<Derived&
>(*this).enter(x);
1792 static_cast<Derived&
>(*this).apply(x.
left());
1793 static_cast<Derived&
>(*this).apply(x.
right());
1794 static_cast<Derived&
>(*this).leave(x);
1799 static_cast<Derived&
>(*this).enter(x);
1800 static_cast<Derived&
>(*this).apply(x.
left());
1801 static_cast<Derived&
>(*this).apply(x.
right());
1802 static_cast<Derived&
>(*this).leave(x);
1807 static_cast<Derived&
>(*this).enter(x);
1808 static_cast<Derived&
>(*this).apply(x.
operand());
1809 static_cast<Derived&
>(*this).leave(x);
1814 static_cast<Derived&
>(*this).enter(x);
1816 static_cast<Derived&
>(*this).leave(x);
1821 static_cast<Derived&
>(*this).enter(x);
1824 static_cast<Derived&
>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
1828 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::action>(x));
1832 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::process_instance>(x));
1836 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::process_instance_assignment>(x));
1840 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::delta>(x));
1844 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::tau>(x));
1848 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::sum>(x));
1852 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::block>(x));
1856 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::hide>(x));
1860 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::rename>(x));
1864 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::comm>(x));
1868 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::allow>(x));
1872 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::sync>(x));
1876 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::at>(x));
1880 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::seq>(x));
1884 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::if_then>(x));
1888 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::if_then_else>(x));
1892 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::bounded_init>(x));
1896 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::merge>(x));
1900 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::left_merge>(x));
1904 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::choice>(x));
1908 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::stochastic_operator>(x));
1912 static_cast<Derived&
>(*this).apply(atermpp::down_cast<process::untyped_process_assignment>(x));
1914 static_cast<Derived&
>(*this).leave(x);
1920template <
typename Derived>
const data::sort_expression_list & sorts() const
const core::identifier_string & name() const
\brief A multiset of action names
const core::identifier_string_list & names() const
const data::data_expression_list & arguments() const
const action_label & label() const
\brief The allow operator
const process_expression & operand() const
const action_name_multiset_list & allow_set() const
const data::data_expression & time_stamp() const
const process_expression & operand() const
\brief The block operator
const process_expression & operand() const
const core::identifier_string_list & block_set() const
\brief The bounded initialization
const process_expression & right() const
const process_expression & left() const
\brief The choice operator
const process_expression & left() const
const process_expression & right() const
\brief The communication operator
const communication_expression_list & comm_set() const
const process_expression & operand() const
\brief A communication expression
const core::identifier_string & name() const
const action_name_multiset & action_name() const
const core::identifier_string_list & hide_set() const
const process_expression & operand() const
\brief The if-then-else operator
const process_expression & else_case() const
const process_expression & then_case() const
const data::data_expression & condition() const
\brief The if-then operator
const process_expression & then_case() const
const data::data_expression & condition() const
\brief The left merge operator
const process_expression & right() const
const process_expression & left() const
\brief The merge operator
const process_expression & right() const
const process_expression & left() const
\brief A process equation
const data::variable_list & formal_parameters() const
const process_identifier & identifier() const
const process_expression & expression() const
\brief A process expression
\brief A process identifier
const data::variable_list & variables() const
const core::identifier_string & name() const
\brief A process assignment
const data::assignment_list & assignments() const
const process_identifier & identifier() const
const data::data_expression_list & actual_parameters() const
const process_identifier & identifier() const
Process specification consisting of a data specification, action labels, a sequence of process equati...
const std::vector< process_equation > & equations() const
Returns the equations of the process specification.
const process_expression & init() const
Returns the initialization of the process specification.
const process::action_label_list & action_labels() const
Returns the action label specification.
const std::set< data::variable > & global_variables() const
Returns the declared free variables of the process specification.
\brief A rename expression
const core::identifier_string & source() const
const core::identifier_string & target() const
\brief The rename operator
const process_expression & operand() const
const rename_expression_list & rename_set() const
\brief The sequential composition
const process_expression & right() const
const process_expression & left() const
\brief The distribution operator
const data::variable_list & variables() const
const data::data_expression & distribution() const
const process_expression & operand() const
const process_expression & operand() const
const data::variable_list & variables() const
\brief The synchronization operator
const process_expression & left() const
const process_expression & right() const
\brief An untyped multi action or data application
const data::untyped_data_parameter_list & actions() const
\brief An untyped process assginment
const data::untyped_identifier_assignment_list & assignments() const
const core::identifier_string & name() const
add your file description here.
bool is_untyped_data_parameter(const atermpp::aterm &x)
bool is_at(const atermpp::aterm &x)
bool is_process_instance(const atermpp::aterm &x)
bool is_process_instance_assignment(const atermpp::aterm &x)
bool is_tau(const atermpp::aterm &x)
bool is_seq(const atermpp::aterm &x)
bool is_merge(const atermpp::aterm &x)
bool is_allow(const atermpp::aterm &x)
bool is_bounded_init(const atermpp::aterm &x)
bool is_delta(const atermpp::aterm &x)
bool is_sum(const atermpp::aterm &x)
bool is_block(const atermpp::aterm &x)
bool is_if_then_else(const atermpp::aterm &x)
bool is_comm(const atermpp::aterm &x)
bool is_action(const atermpp::aterm &x)
bool is_left_merge(const atermpp::aterm &x)
bool is_hide(const atermpp::aterm &x)
bool is_if_then(const atermpp::aterm &x)
bool is_choice(const atermpp::aterm &x)
bool is_stochastic_operator(const atermpp::aterm &x)
bool is_rename(const atermpp::aterm &x)
bool is_untyped_process_assignment(const atermpp::aterm &x)
bool is_sync(const atermpp::aterm &x)
A class that takes a linear process specification and checks all tau-summands of that LPS for conflue...
add your file description here.
void apply(const process::sync &x)
void apply(const process::if_then_else &x)
void apply(const process::block &x)
void apply(const process::untyped_process_assignment &x)
void apply(const process::bounded_init &x)
void apply(const process::sum &x)
void apply(const process::hide &x)
void apply(const process::process_specification &x)
void apply(const process::action &x)
void apply(const process::left_merge &x)
void apply(const process::process_expression &x)
void apply(const process::comm &x)
void apply(const process::rename &x)
void apply(const process::tau &x)
void apply(const process::process_instance_assignment &x)
Traverser< Derived > super
void apply(const process::action_label &x)
void apply(const process::at &x)
void apply(const process::stochastic_operator &x)
void apply(const process::choice &x)
void apply(const process::process_equation &x)
void apply(const process::if_then &x)
void apply(const process::process_instance &x)
void apply(const process::delta &x)
void apply(const process::merge &x)
void apply(const process::allow &x)
void apply(const process::seq &x)
void apply(const process::left_merge &x)
void apply(const process::sum &x)
void apply(const process::choice &x)
void apply(const process::sync &x)
void apply(const process::at &x)
void apply(const process::seq &x)
void apply(const process::stochastic_operator &x)
void apply(const process::action &x)
void apply(const process::allow &x)
void apply(const process::if_then_else &x)
void apply(const process::process_specification &x)
void apply(const process::bounded_init &x)
void apply(const process::untyped_multi_action &x)
void apply(const process::process_instance &x)
void apply(const process::delta &x)
void apply(const process::merge &x)
Traverser< Derived > super
void apply(const process::comm &x)
void apply(const process::process_expression &x)
void apply(const process::block &x)
void apply(const process::process_equation &x)
void apply(const process::if_then &x)
void apply(const process::tau &x)
void apply(const process::hide &x)
void apply(const process::untyped_process_assignment &x)
void apply(const process::process_instance_assignment &x)
void apply(const process::rename &x)
void apply(const process::process_expression &x)
void apply(const process::sum &x)
void apply(const process::process_specification &x)
void apply(const process::hide &x)
void apply(const process::bounded_init &x)
void apply(const process::untyped_multi_action &x)
void apply(const process::process_identifier &x)
void apply(const process::communication_expression &x)
void apply(const process::comm &x)
void apply(const process::choice &x)
void apply(const process::action &x)
void apply(const process::merge &x)
Traverser< Derived > super
void apply(const process::process_equation &x)
void apply(const process::delta &x)
void apply(const process::untyped_process_assignment &x)
void apply(const process::at &x)
void apply(const process::if_then_else &x)
void apply(const process::allow &x)
void apply(const process::rename_expression &x)
void apply(const process::action_name_multiset &x)
void apply(const process::rename &x)
void apply(const process::seq &x)
void apply(const process::left_merge &x)
void apply(const process::tau &x)
void apply(const process::block &x)
void apply(const process::stochastic_operator &x)
void apply(const process::sync &x)
void apply(const process::if_then &x)
void apply(const process::process_instance &x)
void apply(const process::process_instance_assignment &x)
void apply(const process::action_label &x)
void apply(const process::process_instance &x)
void apply(const process::process_expression &x)
void apply(const process::seq &x)
void apply(const process::allow &x)
void apply(const process::left_merge &x)
void apply(const process::action &x)
void apply(const process::stochastic_operator &x)
void apply(const process::if_then_else &x)
void apply(const process::if_then &x)
void apply(const process::comm &x)
void apply(const process::hide &x)
void apply(const process::sync &x)
void apply(const process::process_instance_assignment &x)
void apply(const process::bounded_init &x)
void apply(const process::choice &x)
Traverser< Derived > super
void apply(const process::untyped_process_assignment &x)
void apply(const process::sum &x)
void apply(const process::at &x)
void apply(const process::tau &x)
void apply(const process::delta &x)
void apply(const process::process_specification &x)
void apply(const process::merge &x)
void apply(const process::rename &x)
void apply(const process::process_equation &x)
void apply(const process::block &x)
void apply(const process::process_instance &x)
void apply(const process::process_equation &x)
void apply(const process::process_specification &x)
void apply(const process::comm &x)
void apply(const process::tau &x)
Traverser< Derived > super
void apply(const process::seq &x)
void apply(const process::block &x)
void apply(const process::process_identifier &x)
void apply(const process::rename &x)
void apply(const process::allow &x)
void apply(const process::delta &x)
void apply(const process::merge &x)
void apply(const process::sync &x)
void apply(const process::at &x)
void apply(const process::action &x)
void apply(const process::action_label &x)
void apply(const process::process_instance_assignment &x)
void apply(const process::untyped_process_assignment &x)
void apply(const process::bounded_init &x)
void apply(const process::choice &x)
void apply(const process::sum &x)
void apply(const process::if_then &x)
void apply(const process::stochastic_operator &x)
void apply(const process::process_expression &x)
void apply(const process::left_merge &x)
void apply(const process::untyped_multi_action &x)
void apply(const process::hide &x)
void apply(const process::if_then_else &x)
void apply(const process::sync &x)
void apply(const process::process_equation &x)
void apply(const process::comm &x)
void apply(const process::bounded_init &x)
void apply(const process::if_then_else &x)
void apply(const process::choice &x)
void apply(const process::tau &x)
void apply(const process::allow &x)
Traverser< Derived > super
void apply(const process::process_instance &x)
void apply(const process::merge &x)
void apply(const process::process_specification &x)
void apply(const process::process_identifier &x)
void apply(const process::at &x)
void apply(const process::sum &x)
void apply(const process::untyped_multi_action &x)
void apply(const process::left_merge &x)
void apply(const process::stochastic_operator &x)
void apply(const process::process_instance_assignment &x)
void apply(const process::if_then &x)
void apply(const process::hide &x)
void apply(const process::seq &x)
void apply(const process::process_expression &x)
void apply(const process::rename &x)
void apply(const process::block &x)
void apply(const process::untyped_process_assignment &x)
void apply(const process::delta &x)
void apply(const process::action &x)
add your file description here.