mCRL2
Loading...
Searching...
No Matches
traverser.h
Go to the documentation of this file.
1// Author(s): Jeroen van der Wulp, Wieger Wesselink
2// Copyright: see the accompanying file COPYING or copy at
3// https://github.com/mCRL2org/mCRL2/blob/master/COPYING
4//
5// Distributed under the Boost Software License, Version 1.0.
6// (See accompanying file LICENSE_1_0.txt or copy at
7// http://www.boost.org/LICENSE_1_0.txt)
8//
11
12// To avoid circular inclusion problems
13#ifndef MCRL2_PROCESS_SPECIFICATION_H
15#endif
16
17#ifndef MCRL2_PROCESS_TRAVERSER_H
18#define MCRL2_PROCESS_TRAVERSER_H
19
21
23// #include "mcrl2/process/timed_multi_action.h"
24
25namespace mcrl2
26{
27
28namespace process
29{
30
31//--- start generated add_traverser_sort_expressions code ---//
32template <template <class> class Traverser, class Derived>
33struct add_traverser_sort_expressions: public Traverser<Derived>
34{
35 typedef Traverser<Derived> super;
36 using super::enter;
37 using super::leave;
38 using super::apply;
39
41 {
42 static_cast<Derived&>(*this).enter(x);
43 static_cast<Derived&>(*this).apply(x.sorts());
44 static_cast<Derived&>(*this).leave(x);
45 }
46
48 {
49 static_cast<Derived&>(*this).enter(x);
50 static_cast<Derived&>(*this).apply(x.action_labels());
51 static_cast<Derived&>(*this).apply(x.global_variables());
52 static_cast<Derived&>(*this).apply(x.equations());
53 static_cast<Derived&>(*this).apply(x.init());
54 static_cast<Derived&>(*this).leave(x);
55 }
56
58 {
59 static_cast<Derived&>(*this).enter(x);
60 static_cast<Derived&>(*this).apply(x.variables());
61 static_cast<Derived&>(*this).leave(x);
62 }
63
65 {
66 static_cast<Derived&>(*this).enter(x);
67 static_cast<Derived&>(*this).apply(x.identifier());
68 static_cast<Derived&>(*this).apply(x.formal_parameters());
69 static_cast<Derived&>(*this).apply(x.expression());
70 static_cast<Derived&>(*this).leave(x);
71 }
72
74 {
75 static_cast<Derived&>(*this).enter(x);
76 static_cast<Derived&>(*this).apply(x.actions());
77 static_cast<Derived&>(*this).leave(x);
78 }
79
80 void apply(const process::action& x)
81 {
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);
86 }
87
89 {
90 static_cast<Derived&>(*this).enter(x);
91 static_cast<Derived&>(*this).apply(x.identifier());
92 static_cast<Derived&>(*this).apply(x.actual_parameters());
93 static_cast<Derived&>(*this).leave(x);
94 }
95
97 {
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);
102 }
103
104 void apply(const process::delta& x)
105 {
106 static_cast<Derived&>(*this).enter(x);
107 // skip
108 static_cast<Derived&>(*this).leave(x);
109 }
110
111 void apply(const process::tau& x)
112 {
113 static_cast<Derived&>(*this).enter(x);
114 // skip
115 static_cast<Derived&>(*this).leave(x);
116 }
117
118 void apply(const process::sum& x)
119 {
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);
124 }
125
126 void apply(const process::block& x)
127 {
128 static_cast<Derived&>(*this).enter(x);
129 static_cast<Derived&>(*this).apply(x.operand());
130 static_cast<Derived&>(*this).leave(x);
131 }
132
133 void apply(const process::hide& x)
134 {
135 static_cast<Derived&>(*this).enter(x);
136 static_cast<Derived&>(*this).apply(x.operand());
137 static_cast<Derived&>(*this).leave(x);
138 }
139
140 void apply(const process::rename& x)
141 {
142 static_cast<Derived&>(*this).enter(x);
143 static_cast<Derived&>(*this).apply(x.operand());
144 static_cast<Derived&>(*this).leave(x);
145 }
146
147 void apply(const process::comm& x)
148 {
149 static_cast<Derived&>(*this).enter(x);
150 static_cast<Derived&>(*this).apply(x.operand());
151 static_cast<Derived&>(*this).leave(x);
152 }
153
154 void apply(const process::allow& x)
155 {
156 static_cast<Derived&>(*this).enter(x);
157 static_cast<Derived&>(*this).apply(x.operand());
158 static_cast<Derived&>(*this).leave(x);
159 }
160
161 void apply(const process::sync& x)
162 {
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);
167 }
168
169 void apply(const process::at& x)
170 {
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);
175 }
176
177 void apply(const process::seq& x)
178 {
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);
183 }
184
185 void apply(const process::if_then& x)
186 {
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);
191 }
192
194 {
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);
200 }
201
203 {
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);
208 }
209
210 void apply(const process::merge& x)
211 {
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);
216 }
217
219 {
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);
224 }
225
226 void apply(const process::choice& x)
227 {
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);
232 }
233
235 {
236 static_cast<Derived&>(*this).enter(x);
237 static_cast<Derived&>(*this).apply(x.variables());
238 static_cast<Derived&>(*this).apply(x.distribution());
239 static_cast<Derived&>(*this).apply(x.operand());
240 static_cast<Derived&>(*this).leave(x);
241 }
242
244 {
245 static_cast<Derived&>(*this).enter(x);
246 static_cast<Derived&>(*this).apply(x.assignments());
247 static_cast<Derived&>(*this).leave(x);
248 }
249
251 {
252 static_cast<Derived&>(*this).enter(x);
254 {
255 static_cast<Derived&>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
256 }
257 else if (process::is_action(x))
258 {
259 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::action>(x));
260 }
262 {
263 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::process_instance>(x));
264 }
266 {
267 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::process_instance_assignment>(x));
268 }
269 else if (process::is_delta(x))
270 {
271 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::delta>(x));
272 }
273 else if (process::is_tau(x))
274 {
275 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::tau>(x));
276 }
277 else if (process::is_sum(x))
278 {
279 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::sum>(x));
280 }
281 else if (process::is_block(x))
282 {
283 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::block>(x));
284 }
285 else if (process::is_hide(x))
286 {
287 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::hide>(x));
288 }
289 else if (process::is_rename(x))
290 {
291 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::rename>(x));
292 }
293 else if (process::is_comm(x))
294 {
295 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::comm>(x));
296 }
297 else if (process::is_allow(x))
298 {
299 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::allow>(x));
300 }
301 else if (process::is_sync(x))
302 {
303 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::sync>(x));
304 }
305 else if (process::is_at(x))
306 {
307 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::at>(x));
308 }
309 else if (process::is_seq(x))
310 {
311 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::seq>(x));
312 }
313 else if (process::is_if_then(x))
314 {
315 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::if_then>(x));
316 }
317 else if (process::is_if_then_else(x))
318 {
319 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::if_then_else>(x));
320 }
321 else if (process::is_bounded_init(x))
322 {
323 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::bounded_init>(x));
324 }
325 else if (process::is_merge(x))
326 {
327 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::merge>(x));
328 }
329 else if (process::is_left_merge(x))
330 {
331 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::left_merge>(x));
332 }
333 else if (process::is_choice(x))
334 {
335 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::choice>(x));
336 }
338 {
339 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::stochastic_operator>(x));
340 }
342 {
343 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::untyped_process_assignment>(x));
344 }
345 static_cast<Derived&>(*this).leave(x);
346 }
347
348};
349
351template <typename Derived>
352struct sort_expression_traverser: public add_traverser_sort_expressions<data::sort_expression_traverser, Derived>
353{
354};
355//--- end generated add_traverser_sort_expressions code ---//
356
357//--- start generated add_traverser_data_expressions code ---//
358template <template <class> class Traverser, class Derived>
359struct add_traverser_data_expressions: public Traverser<Derived>
360{
361 typedef Traverser<Derived> super;
362 using super::enter;
363 using super::leave;
364 using super::apply;
365
367 {
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);
372 }
373
375 {
376 static_cast<Derived&>(*this).enter(x);
377 static_cast<Derived&>(*this).apply(x.expression());
378 static_cast<Derived&>(*this).leave(x);
379 }
380
382 {
383 static_cast<Derived&>(*this).enter(x);
384 static_cast<Derived&>(*this).apply(x.actions());
385 static_cast<Derived&>(*this).leave(x);
386 }
387
388 void apply(const process::action& x)
389 {
390 static_cast<Derived&>(*this).enter(x);
391 static_cast<Derived&>(*this).apply(x.arguments());
392 static_cast<Derived&>(*this).leave(x);
393 }
394
396 {
397 static_cast<Derived&>(*this).enter(x);
398 static_cast<Derived&>(*this).apply(x.actual_parameters());
399 static_cast<Derived&>(*this).leave(x);
400 }
401
403 {
404 static_cast<Derived&>(*this).enter(x);
405 static_cast<Derived&>(*this).apply(x.assignments());
406 static_cast<Derived&>(*this).leave(x);
407 }
408
409 void apply(const process::delta& x)
410 {
411 static_cast<Derived&>(*this).enter(x);
412 // skip
413 static_cast<Derived&>(*this).leave(x);
414 }
415
416 void apply(const process::tau& x)
417 {
418 static_cast<Derived&>(*this).enter(x);
419 // skip
420 static_cast<Derived&>(*this).leave(x);
421 }
422
423 void apply(const process::sum& x)
424 {
425 static_cast<Derived&>(*this).enter(x);
426 static_cast<Derived&>(*this).apply(x.operand());
427 static_cast<Derived&>(*this).leave(x);
428 }
429
430 void apply(const process::block& x)
431 {
432 static_cast<Derived&>(*this).enter(x);
433 static_cast<Derived&>(*this).apply(x.operand());
434 static_cast<Derived&>(*this).leave(x);
435 }
436
437 void apply(const process::hide& x)
438 {
439 static_cast<Derived&>(*this).enter(x);
440 static_cast<Derived&>(*this).apply(x.operand());
441 static_cast<Derived&>(*this).leave(x);
442 }
443
444 void apply(const process::rename& x)
445 {
446 static_cast<Derived&>(*this).enter(x);
447 static_cast<Derived&>(*this).apply(x.operand());
448 static_cast<Derived&>(*this).leave(x);
449 }
450
451 void apply(const process::comm& x)
452 {
453 static_cast<Derived&>(*this).enter(x);
454 static_cast<Derived&>(*this).apply(x.operand());
455 static_cast<Derived&>(*this).leave(x);
456 }
457
458 void apply(const process::allow& x)
459 {
460 static_cast<Derived&>(*this).enter(x);
461 static_cast<Derived&>(*this).apply(x.operand());
462 static_cast<Derived&>(*this).leave(x);
463 }
464
465 void apply(const process::sync& x)
466 {
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);
471 }
472
473 void apply(const process::at& x)
474 {
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);
479 }
480
481 void apply(const process::seq& x)
482 {
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);
487 }
488
489 void apply(const process::if_then& x)
490 {
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);
495 }
496
498 {
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);
504 }
505
507 {
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);
512 }
513
514 void apply(const process::merge& x)
515 {
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);
520 }
521
523 {
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);
528 }
529
530 void apply(const process::choice& x)
531 {
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);
536 }
537
539 {
540 static_cast<Derived&>(*this).enter(x);
541 static_cast<Derived&>(*this).apply(x.distribution());
542 static_cast<Derived&>(*this).apply(x.operand());
543 static_cast<Derived&>(*this).leave(x);
544 }
545
547 {
548 static_cast<Derived&>(*this).enter(x);
549 static_cast<Derived&>(*this).apply(x.assignments());
550 static_cast<Derived&>(*this).leave(x);
551 }
552
554 {
555 static_cast<Derived&>(*this).enter(x);
557 {
558 static_cast<Derived&>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
559 }
560 else if (process::is_action(x))
561 {
562 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::action>(x));
563 }
565 {
566 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::process_instance>(x));
567 }
569 {
570 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::process_instance_assignment>(x));
571 }
572 else if (process::is_delta(x))
573 {
574 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::delta>(x));
575 }
576 else if (process::is_tau(x))
577 {
578 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::tau>(x));
579 }
580 else if (process::is_sum(x))
581 {
582 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::sum>(x));
583 }
584 else if (process::is_block(x))
585 {
586 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::block>(x));
587 }
588 else if (process::is_hide(x))
589 {
590 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::hide>(x));
591 }
592 else if (process::is_rename(x))
593 {
594 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::rename>(x));
595 }
596 else if (process::is_comm(x))
597 {
598 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::comm>(x));
599 }
600 else if (process::is_allow(x))
601 {
602 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::allow>(x));
603 }
604 else if (process::is_sync(x))
605 {
606 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::sync>(x));
607 }
608 else if (process::is_at(x))
609 {
610 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::at>(x));
611 }
612 else if (process::is_seq(x))
613 {
614 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::seq>(x));
615 }
616 else if (process::is_if_then(x))
617 {
618 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::if_then>(x));
619 }
620 else if (process::is_if_then_else(x))
621 {
622 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::if_then_else>(x));
623 }
624 else if (process::is_bounded_init(x))
625 {
626 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::bounded_init>(x));
627 }
628 else if (process::is_merge(x))
629 {
630 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::merge>(x));
631 }
632 else if (process::is_left_merge(x))
633 {
634 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::left_merge>(x));
635 }
636 else if (process::is_choice(x))
637 {
638 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::choice>(x));
639 }
641 {
642 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::stochastic_operator>(x));
643 }
645 {
646 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::untyped_process_assignment>(x));
647 }
648 static_cast<Derived&>(*this).leave(x);
649 }
650
651};
652
654template <typename Derived>
655struct data_expression_traverser: public add_traverser_data_expressions<data::data_expression_traverser, Derived>
656{
657};
658//--- end generated add_traverser_data_expressions code ---//
659
660//--- start generated add_traverser_process_expressions code ---//
661template <template <class> class Traverser, class Derived>
662struct add_traverser_process_expressions: public Traverser<Derived>
663{
664 typedef Traverser<Derived> super;
665 using super::enter;
666 using super::leave;
667 using super::apply;
668
670 {
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);
675 }
676
678 {
679 static_cast<Derived&>(*this).enter(x);
680 static_cast<Derived&>(*this).apply(x.expression());
681 static_cast<Derived&>(*this).leave(x);
682 }
683
684 void apply(const process::action& x)
685 {
686 static_cast<Derived&>(*this).enter(x);
687 // skip
688 static_cast<Derived&>(*this).leave(x);
689 }
690
692 {
693 static_cast<Derived&>(*this).enter(x);
694 // skip
695 static_cast<Derived&>(*this).leave(x);
696 }
697
699 {
700 static_cast<Derived&>(*this).enter(x);
701 // skip
702 static_cast<Derived&>(*this).leave(x);
703 }
704
705 void apply(const process::delta& x)
706 {
707 static_cast<Derived&>(*this).enter(x);
708 // skip
709 static_cast<Derived&>(*this).leave(x);
710 }
711
712 void apply(const process::tau& x)
713 {
714 static_cast<Derived&>(*this).enter(x);
715 // skip
716 static_cast<Derived&>(*this).leave(x);
717 }
718
719 void apply(const process::sum& x)
720 {
721 static_cast<Derived&>(*this).enter(x);
722 static_cast<Derived&>(*this).apply(x.operand());
723 static_cast<Derived&>(*this).leave(x);
724 }
725
726 void apply(const process::block& x)
727 {
728 static_cast<Derived&>(*this).enter(x);
729 static_cast<Derived&>(*this).apply(x.operand());
730 static_cast<Derived&>(*this).leave(x);
731 }
732
733 void apply(const process::hide& x)
734 {
735 static_cast<Derived&>(*this).enter(x);
736 static_cast<Derived&>(*this).apply(x.operand());
737 static_cast<Derived&>(*this).leave(x);
738 }
739
740 void apply(const process::rename& x)
741 {
742 static_cast<Derived&>(*this).enter(x);
743 static_cast<Derived&>(*this).apply(x.operand());
744 static_cast<Derived&>(*this).leave(x);
745 }
746
747 void apply(const process::comm& x)
748 {
749 static_cast<Derived&>(*this).enter(x);
750 static_cast<Derived&>(*this).apply(x.operand());
751 static_cast<Derived&>(*this).leave(x);
752 }
753
754 void apply(const process::allow& x)
755 {
756 static_cast<Derived&>(*this).enter(x);
757 static_cast<Derived&>(*this).apply(x.operand());
758 static_cast<Derived&>(*this).leave(x);
759 }
760
761 void apply(const process::sync& x)
762 {
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);
767 }
768
769 void apply(const process::at& x)
770 {
771 static_cast<Derived&>(*this).enter(x);
772 static_cast<Derived&>(*this).apply(x.operand());
773 static_cast<Derived&>(*this).leave(x);
774 }
775
776 void apply(const process::seq& x)
777 {
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);
782 }
783
784 void apply(const process::if_then& x)
785 {
786 static_cast<Derived&>(*this).enter(x);
787 static_cast<Derived&>(*this).apply(x.then_case());
788 static_cast<Derived&>(*this).leave(x);
789 }
790
792 {
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);
797 }
798
800 {
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);
805 }
806
807 void apply(const process::merge& x)
808 {
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);
813 }
814
816 {
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);
821 }
822
823 void apply(const process::choice& x)
824 {
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);
829 }
830
832 {
833 static_cast<Derived&>(*this).enter(x);
834 static_cast<Derived&>(*this).apply(x.operand());
835 static_cast<Derived&>(*this).leave(x);
836 }
837
839 {
840 static_cast<Derived&>(*this).enter(x);
841 // skip
842 static_cast<Derived&>(*this).leave(x);
843 }
844
846 {
847 static_cast<Derived&>(*this).enter(x);
849 {
850 static_cast<Derived&>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
851 }
852 else if (process::is_action(x))
853 {
854 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::action>(x));
855 }
857 {
858 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::process_instance>(x));
859 }
861 {
862 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::process_instance_assignment>(x));
863 }
864 else if (process::is_delta(x))
865 {
866 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::delta>(x));
867 }
868 else if (process::is_tau(x))
869 {
870 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::tau>(x));
871 }
872 else if (process::is_sum(x))
873 {
874 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::sum>(x));
875 }
876 else if (process::is_block(x))
877 {
878 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::block>(x));
879 }
880 else if (process::is_hide(x))
881 {
882 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::hide>(x));
883 }
884 else if (process::is_rename(x))
885 {
886 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::rename>(x));
887 }
888 else if (process::is_comm(x))
889 {
890 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::comm>(x));
891 }
892 else if (process::is_allow(x))
893 {
894 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::allow>(x));
895 }
896 else if (process::is_sync(x))
897 {
898 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::sync>(x));
899 }
900 else if (process::is_at(x))
901 {
902 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::at>(x));
903 }
904 else if (process::is_seq(x))
905 {
906 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::seq>(x));
907 }
908 else if (process::is_if_then(x))
909 {
910 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::if_then>(x));
911 }
912 else if (process::is_if_then_else(x))
913 {
914 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::if_then_else>(x));
915 }
916 else if (process::is_bounded_init(x))
917 {
918 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::bounded_init>(x));
919 }
920 else if (process::is_merge(x))
921 {
922 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::merge>(x));
923 }
924 else if (process::is_left_merge(x))
925 {
926 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::left_merge>(x));
927 }
928 else if (process::is_choice(x))
929 {
930 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::choice>(x));
931 }
933 {
934 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::stochastic_operator>(x));
935 }
937 {
938 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::untyped_process_assignment>(x));
939 }
940 static_cast<Derived&>(*this).leave(x);
941 }
942
943};
944
946template <typename Derived>
948{
949};
950//--- end generated add_traverser_process_expressions code ---//
951
952//--- start generated add_traverser_variables code ---//
953template <template <class> class Traverser, class Derived>
954struct add_traverser_variables: public Traverser<Derived>
955{
956 typedef Traverser<Derived> super;
957 using super::enter;
958 using super::leave;
959 using super::apply;
960
962 {
963 static_cast<Derived&>(*this).enter(x);
964 static_cast<Derived&>(*this).apply(x.global_variables());
965 static_cast<Derived&>(*this).apply(x.equations());
966 static_cast<Derived&>(*this).apply(x.init());
967 static_cast<Derived&>(*this).leave(x);
968 }
969
971 {
972 static_cast<Derived&>(*this).enter(x);
973 static_cast<Derived&>(*this).apply(x.variables());
974 static_cast<Derived&>(*this).leave(x);
975 }
976
978 {
979 static_cast<Derived&>(*this).enter(x);
980 static_cast<Derived&>(*this).apply(x.identifier());
981 static_cast<Derived&>(*this).apply(x.formal_parameters());
982 static_cast<Derived&>(*this).apply(x.expression());
983 static_cast<Derived&>(*this).leave(x);
984 }
985
987 {
988 static_cast<Derived&>(*this).enter(x);
989 static_cast<Derived&>(*this).apply(x.actions());
990 static_cast<Derived&>(*this).leave(x);
991 }
992
993 void apply(const process::action& x)
994 {
995 static_cast<Derived&>(*this).enter(x);
996 static_cast<Derived&>(*this).apply(x.arguments());
997 static_cast<Derived&>(*this).leave(x);
998 }
999
1001 {
1002 static_cast<Derived&>(*this).enter(x);
1003 static_cast<Derived&>(*this).apply(x.identifier());
1004 static_cast<Derived&>(*this).apply(x.actual_parameters());
1005 static_cast<Derived&>(*this).leave(x);
1006 }
1007
1009 {
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);
1014 }
1015
1016 void apply(const process::delta& x)
1017 {
1018 static_cast<Derived&>(*this).enter(x);
1019 // skip
1020 static_cast<Derived&>(*this).leave(x);
1021 }
1022
1023 void apply(const process::tau& x)
1024 {
1025 static_cast<Derived&>(*this).enter(x);
1026 // skip
1027 static_cast<Derived&>(*this).leave(x);
1028 }
1029
1030 void apply(const process::sum& x)
1031 {
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);
1036 }
1037
1038 void apply(const process::block& x)
1039 {
1040 static_cast<Derived&>(*this).enter(x);
1041 static_cast<Derived&>(*this).apply(x.operand());
1042 static_cast<Derived&>(*this).leave(x);
1043 }
1044
1045 void apply(const process::hide& x)
1046 {
1047 static_cast<Derived&>(*this).enter(x);
1048 static_cast<Derived&>(*this).apply(x.operand());
1049 static_cast<Derived&>(*this).leave(x);
1050 }
1051
1052 void apply(const process::rename& x)
1053 {
1054 static_cast<Derived&>(*this).enter(x);
1055 static_cast<Derived&>(*this).apply(x.operand());
1056 static_cast<Derived&>(*this).leave(x);
1057 }
1058
1059 void apply(const process::comm& x)
1060 {
1061 static_cast<Derived&>(*this).enter(x);
1062 static_cast<Derived&>(*this).apply(x.operand());
1063 static_cast<Derived&>(*this).leave(x);
1064 }
1065
1066 void apply(const process::allow& x)
1067 {
1068 static_cast<Derived&>(*this).enter(x);
1069 static_cast<Derived&>(*this).apply(x.operand());
1070 static_cast<Derived&>(*this).leave(x);
1071 }
1072
1073 void apply(const process::sync& x)
1074 {
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);
1079 }
1080
1081 void apply(const process::at& x)
1082 {
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);
1087 }
1088
1089 void apply(const process::seq& x)
1090 {
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);
1095 }
1096
1098 {
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);
1103 }
1104
1106 {
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);
1112 }
1113
1115 {
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);
1120 }
1121
1122 void apply(const process::merge& x)
1123 {
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);
1128 }
1129
1131 {
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);
1136 }
1137
1138 void apply(const process::choice& x)
1139 {
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);
1144 }
1145
1147 {
1148 static_cast<Derived&>(*this).enter(x);
1149 static_cast<Derived&>(*this).apply(x.variables());
1150 static_cast<Derived&>(*this).apply(x.distribution());
1151 static_cast<Derived&>(*this).apply(x.operand());
1152 static_cast<Derived&>(*this).leave(x);
1153 }
1154
1156 {
1157 static_cast<Derived&>(*this).enter(x);
1158 static_cast<Derived&>(*this).apply(x.assignments());
1159 static_cast<Derived&>(*this).leave(x);
1160 }
1161
1163 {
1164 static_cast<Derived&>(*this).enter(x);
1166 {
1167 static_cast<Derived&>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
1168 }
1169 else if (process::is_action(x))
1170 {
1171 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::action>(x));
1172 }
1173 else if (process::is_process_instance(x))
1174 {
1175 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::process_instance>(x));
1176 }
1178 {
1179 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::process_instance_assignment>(x));
1180 }
1181 else if (process::is_delta(x))
1182 {
1183 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::delta>(x));
1184 }
1185 else if (process::is_tau(x))
1186 {
1187 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::tau>(x));
1188 }
1189 else if (process::is_sum(x))
1190 {
1191 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::sum>(x));
1192 }
1193 else if (process::is_block(x))
1194 {
1195 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::block>(x));
1196 }
1197 else if (process::is_hide(x))
1198 {
1199 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::hide>(x));
1200 }
1201 else if (process::is_rename(x))
1202 {
1203 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::rename>(x));
1204 }
1205 else if (process::is_comm(x))
1206 {
1207 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::comm>(x));
1208 }
1209 else if (process::is_allow(x))
1210 {
1211 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::allow>(x));
1212 }
1213 else if (process::is_sync(x))
1214 {
1215 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::sync>(x));
1216 }
1217 else if (process::is_at(x))
1218 {
1219 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::at>(x));
1220 }
1221 else if (process::is_seq(x))
1222 {
1223 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::seq>(x));
1224 }
1225 else if (process::is_if_then(x))
1226 {
1227 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::if_then>(x));
1228 }
1229 else if (process::is_if_then_else(x))
1230 {
1231 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::if_then_else>(x));
1232 }
1233 else if (process::is_bounded_init(x))
1234 {
1235 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::bounded_init>(x));
1236 }
1237 else if (process::is_merge(x))
1238 {
1239 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::merge>(x));
1240 }
1241 else if (process::is_left_merge(x))
1242 {
1243 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::left_merge>(x));
1244 }
1245 else if (process::is_choice(x))
1246 {
1247 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::choice>(x));
1248 }
1250 {
1251 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::stochastic_operator>(x));
1252 }
1254 {
1255 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::untyped_process_assignment>(x));
1256 }
1257 static_cast<Derived&>(*this).leave(x);
1258 }
1259
1260};
1261
1263template <typename Derived>
1264struct variable_traverser: public add_traverser_variables<data::variable_traverser, Derived>
1265{
1266};
1267//--- end generated add_traverser_variables code ---//
1268
1269//--- start generated add_traverser_identifier_strings code ---//
1270template <template <class> class Traverser, class Derived>
1271struct add_traverser_identifier_strings: public Traverser<Derived>
1272{
1273 typedef Traverser<Derived> super;
1274 using super::enter;
1275 using super::leave;
1276 using super::apply;
1277
1279 {
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);
1284 }
1285
1287 {
1288 static_cast<Derived&>(*this).enter(x);
1289 static_cast<Derived&>(*this).apply(x.action_labels());
1290 static_cast<Derived&>(*this).apply(x.global_variables());
1291 static_cast<Derived&>(*this).apply(x.equations());
1292 static_cast<Derived&>(*this).apply(x.init());
1293 static_cast<Derived&>(*this).leave(x);
1294 }
1295
1297 {
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);
1302 }
1303
1305 {
1306 static_cast<Derived&>(*this).enter(x);
1307 static_cast<Derived&>(*this).apply(x.identifier());
1308 static_cast<Derived&>(*this).apply(x.formal_parameters());
1309 static_cast<Derived&>(*this).apply(x.expression());
1310 static_cast<Derived&>(*this).leave(x);
1311 }
1312
1314 {
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);
1319 }
1320
1322 {
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);
1327 }
1328
1330 {
1331 static_cast<Derived&>(*this).enter(x);
1332 static_cast<Derived&>(*this).apply(x.names());
1333 static_cast<Derived&>(*this).leave(x);
1334 }
1335
1337 {
1338 static_cast<Derived&>(*this).enter(x);
1339 static_cast<Derived&>(*this).apply(x.actions());
1340 static_cast<Derived&>(*this).leave(x);
1341 }
1342
1343 void apply(const process::action& x)
1344 {
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);
1349 }
1350
1352 {
1353 static_cast<Derived&>(*this).enter(x);
1354 static_cast<Derived&>(*this).apply(x.identifier());
1355 static_cast<Derived&>(*this).apply(x.actual_parameters());
1356 static_cast<Derived&>(*this).leave(x);
1357 }
1358
1360 {
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);
1365 }
1366
1367 void apply(const process::delta& x)
1368 {
1369 static_cast<Derived&>(*this).enter(x);
1370 // skip
1371 static_cast<Derived&>(*this).leave(x);
1372 }
1373
1374 void apply(const process::tau& x)
1375 {
1376 static_cast<Derived&>(*this).enter(x);
1377 // skip
1378 static_cast<Derived&>(*this).leave(x);
1379 }
1380
1381 void apply(const process::sum& x)
1382 {
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);
1387 }
1388
1389 void apply(const process::block& x)
1390 {
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);
1395 }
1396
1397 void apply(const process::hide& x)
1398 {
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);
1403 }
1404
1405 void apply(const process::rename& x)
1406 {
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);
1411 }
1412
1413 void apply(const process::comm& x)
1414 {
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);
1419 }
1420
1421 void apply(const process::allow& x)
1422 {
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);
1427 }
1428
1429 void apply(const process::sync& x)
1430 {
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);
1435 }
1436
1437 void apply(const process::at& x)
1438 {
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);
1443 }
1444
1445 void apply(const process::seq& x)
1446 {
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);
1451 }
1452
1454 {
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);
1459 }
1460
1462 {
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);
1468 }
1469
1471 {
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);
1476 }
1477
1478 void apply(const process::merge& x)
1479 {
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);
1484 }
1485
1487 {
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);
1492 }
1493
1494 void apply(const process::choice& x)
1495 {
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);
1500 }
1501
1503 {
1504 static_cast<Derived&>(*this).enter(x);
1505 static_cast<Derived&>(*this).apply(x.variables());
1506 static_cast<Derived&>(*this).apply(x.distribution());
1507 static_cast<Derived&>(*this).apply(x.operand());
1508 static_cast<Derived&>(*this).leave(x);
1509 }
1510
1512 {
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);
1517 }
1518
1520 {
1521 static_cast<Derived&>(*this).enter(x);
1523 {
1524 static_cast<Derived&>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
1525 }
1526 else if (process::is_action(x))
1527 {
1528 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::action>(x));
1529 }
1530 else if (process::is_process_instance(x))
1531 {
1532 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::process_instance>(x));
1533 }
1535 {
1536 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::process_instance_assignment>(x));
1537 }
1538 else if (process::is_delta(x))
1539 {
1540 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::delta>(x));
1541 }
1542 else if (process::is_tau(x))
1543 {
1544 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::tau>(x));
1545 }
1546 else if (process::is_sum(x))
1547 {
1548 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::sum>(x));
1549 }
1550 else if (process::is_block(x))
1551 {
1552 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::block>(x));
1553 }
1554 else if (process::is_hide(x))
1555 {
1556 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::hide>(x));
1557 }
1558 else if (process::is_rename(x))
1559 {
1560 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::rename>(x));
1561 }
1562 else if (process::is_comm(x))
1563 {
1564 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::comm>(x));
1565 }
1566 else if (process::is_allow(x))
1567 {
1568 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::allow>(x));
1569 }
1570 else if (process::is_sync(x))
1571 {
1572 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::sync>(x));
1573 }
1574 else if (process::is_at(x))
1575 {
1576 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::at>(x));
1577 }
1578 else if (process::is_seq(x))
1579 {
1580 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::seq>(x));
1581 }
1582 else if (process::is_if_then(x))
1583 {
1584 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::if_then>(x));
1585 }
1586 else if (process::is_if_then_else(x))
1587 {
1588 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::if_then_else>(x));
1589 }
1590 else if (process::is_bounded_init(x))
1591 {
1592 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::bounded_init>(x));
1593 }
1594 else if (process::is_merge(x))
1595 {
1596 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::merge>(x));
1597 }
1598 else if (process::is_left_merge(x))
1599 {
1600 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::left_merge>(x));
1601 }
1602 else if (process::is_choice(x))
1603 {
1604 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::choice>(x));
1605 }
1607 {
1608 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::stochastic_operator>(x));
1609 }
1611 {
1612 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::untyped_process_assignment>(x));
1613 }
1614 static_cast<Derived&>(*this).leave(x);
1615 }
1616
1617};
1618
1620template <typename Derived>
1621struct identifier_string_traverser: public add_traverser_identifier_strings<data::identifier_string_traverser, Derived>
1622{
1623};
1624//--- end generated add_traverser_identifier_strings code ---//
1625
1626//--- start generated add_traverser_action_labels code ---//
1627template <template <class> class Traverser, class Derived>
1628struct add_traverser_action_labels: public Traverser<Derived>
1629{
1630 typedef Traverser<Derived> super;
1631 using super::enter;
1632 using super::leave;
1633 using super::apply;
1634
1636 {
1637 static_cast<Derived&>(*this).enter(x);
1638 // skip
1639 static_cast<Derived&>(*this).leave(x);
1640 }
1641
1643 {
1644 static_cast<Derived&>(*this).enter(x);
1645 static_cast<Derived&>(*this).apply(x.action_labels());
1646 static_cast<Derived&>(*this).apply(x.equations());
1647 static_cast<Derived&>(*this).apply(x.init());
1648 static_cast<Derived&>(*this).leave(x);
1649 }
1650
1652 {
1653 static_cast<Derived&>(*this).enter(x);
1654 static_cast<Derived&>(*this).apply(x.expression());
1655 static_cast<Derived&>(*this).leave(x);
1656 }
1657
1658 void apply(const process::action& x)
1659 {
1660 static_cast<Derived&>(*this).enter(x);
1661 static_cast<Derived&>(*this).apply(x.label());
1662 static_cast<Derived&>(*this).leave(x);
1663 }
1664
1666 {
1667 static_cast<Derived&>(*this).enter(x);
1668 // skip
1669 static_cast<Derived&>(*this).leave(x);
1670 }
1671
1673 {
1674 static_cast<Derived&>(*this).enter(x);
1675 // skip
1676 static_cast<Derived&>(*this).leave(x);
1677 }
1678
1679 void apply(const process::delta& x)
1680 {
1681 static_cast<Derived&>(*this).enter(x);
1682 // skip
1683 static_cast<Derived&>(*this).leave(x);
1684 }
1685
1686 void apply(const process::tau& x)
1687 {
1688 static_cast<Derived&>(*this).enter(x);
1689 // skip
1690 static_cast<Derived&>(*this).leave(x);
1691 }
1692
1693 void apply(const process::sum& x)
1694 {
1695 static_cast<Derived&>(*this).enter(x);
1696 static_cast<Derived&>(*this).apply(x.operand());
1697 static_cast<Derived&>(*this).leave(x);
1698 }
1699
1700 void apply(const process::block& x)
1701 {
1702 static_cast<Derived&>(*this).enter(x);
1703 static_cast<Derived&>(*this).apply(x.operand());
1704 static_cast<Derived&>(*this).leave(x);
1705 }
1706
1707 void apply(const process::hide& x)
1708 {
1709 static_cast<Derived&>(*this).enter(x);
1710 static_cast<Derived&>(*this).apply(x.operand());
1711 static_cast<Derived&>(*this).leave(x);
1712 }
1713
1714 void apply(const process::rename& x)
1715 {
1716 static_cast<Derived&>(*this).enter(x);
1717 static_cast<Derived&>(*this).apply(x.operand());
1718 static_cast<Derived&>(*this).leave(x);
1719 }
1720
1721 void apply(const process::comm& x)
1722 {
1723 static_cast<Derived&>(*this).enter(x);
1724 static_cast<Derived&>(*this).apply(x.operand());
1725 static_cast<Derived&>(*this).leave(x);
1726 }
1727
1728 void apply(const process::allow& x)
1729 {
1730 static_cast<Derived&>(*this).enter(x);
1731 static_cast<Derived&>(*this).apply(x.operand());
1732 static_cast<Derived&>(*this).leave(x);
1733 }
1734
1735 void apply(const process::sync& x)
1736 {
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);
1741 }
1742
1743 void apply(const process::at& x)
1744 {
1745 static_cast<Derived&>(*this).enter(x);
1746 static_cast<Derived&>(*this).apply(x.operand());
1747 static_cast<Derived&>(*this).leave(x);
1748 }
1749
1750 void apply(const process::seq& x)
1751 {
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);
1756 }
1757
1759 {
1760 static_cast<Derived&>(*this).enter(x);
1761 static_cast<Derived&>(*this).apply(x.then_case());
1762 static_cast<Derived&>(*this).leave(x);
1763 }
1764
1766 {
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);
1771 }
1772
1774 {
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);
1779 }
1780
1781 void apply(const process::merge& x)
1782 {
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);
1787 }
1788
1790 {
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);
1795 }
1796
1797 void apply(const process::choice& x)
1798 {
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);
1803 }
1804
1806 {
1807 static_cast<Derived&>(*this).enter(x);
1808 static_cast<Derived&>(*this).apply(x.operand());
1809 static_cast<Derived&>(*this).leave(x);
1810 }
1811
1813 {
1814 static_cast<Derived&>(*this).enter(x);
1815 // skip
1816 static_cast<Derived&>(*this).leave(x);
1817 }
1818
1820 {
1821 static_cast<Derived&>(*this).enter(x);
1823 {
1824 static_cast<Derived&>(*this).apply(atermpp::down_cast<data::untyped_data_parameter>(x));
1825 }
1826 else if (process::is_action(x))
1827 {
1828 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::action>(x));
1829 }
1830 else if (process::is_process_instance(x))
1831 {
1832 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::process_instance>(x));
1833 }
1835 {
1836 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::process_instance_assignment>(x));
1837 }
1838 else if (process::is_delta(x))
1839 {
1840 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::delta>(x));
1841 }
1842 else if (process::is_tau(x))
1843 {
1844 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::tau>(x));
1845 }
1846 else if (process::is_sum(x))
1847 {
1848 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::sum>(x));
1849 }
1850 else if (process::is_block(x))
1851 {
1852 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::block>(x));
1853 }
1854 else if (process::is_hide(x))
1855 {
1856 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::hide>(x));
1857 }
1858 else if (process::is_rename(x))
1859 {
1860 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::rename>(x));
1861 }
1862 else if (process::is_comm(x))
1863 {
1864 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::comm>(x));
1865 }
1866 else if (process::is_allow(x))
1867 {
1868 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::allow>(x));
1869 }
1870 else if (process::is_sync(x))
1871 {
1872 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::sync>(x));
1873 }
1874 else if (process::is_at(x))
1875 {
1876 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::at>(x));
1877 }
1878 else if (process::is_seq(x))
1879 {
1880 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::seq>(x));
1881 }
1882 else if (process::is_if_then(x))
1883 {
1884 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::if_then>(x));
1885 }
1886 else if (process::is_if_then_else(x))
1887 {
1888 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::if_then_else>(x));
1889 }
1890 else if (process::is_bounded_init(x))
1891 {
1892 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::bounded_init>(x));
1893 }
1894 else if (process::is_merge(x))
1895 {
1896 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::merge>(x));
1897 }
1898 else if (process::is_left_merge(x))
1899 {
1900 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::left_merge>(x));
1901 }
1902 else if (process::is_choice(x))
1903 {
1904 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::choice>(x));
1905 }
1907 {
1908 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::stochastic_operator>(x));
1909 }
1911 {
1912 static_cast<Derived&>(*this).apply(atermpp::down_cast<process::untyped_process_assignment>(x));
1913 }
1914 static_cast<Derived&>(*this).leave(x);
1915 }
1916
1917};
1918
1920template <typename Derived>
1921struct action_label_traverser: public add_traverser_action_labels<core::traverser, Derived>
1922{
1923};
1924//--- end generated add_traverser_action_labels code ---//
1925
1926} // namespace process
1927
1928} // namespace mcrl2
1929
1930#endif // MCRL2_PROCESS_TRAVERSER_H
\brief An action label
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
\brief The at operator
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
const core::identifier_string & name() const
const action_name_multiset & action_name() const
\brief The value delta
\brief The hide operator
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
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
\brief The sum operator
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 The value tau
\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...
Definition indexed_set.h:72
add your file description here.
void apply(const process::sync &x)
Definition traverser.h:1735
void apply(const process::if_then_else &x)
Definition traverser.h:1765
void apply(const process::block &x)
Definition traverser.h:1700
void apply(const process::untyped_process_assignment &x)
Definition traverser.h:1812
void apply(const process::bounded_init &x)
Definition traverser.h:1773
void apply(const process::sum &x)
Definition traverser.h:1693
void apply(const process::hide &x)
Definition traverser.h:1707
void apply(const process::process_specification &x)
Definition traverser.h:1642
void apply(const process::action &x)
Definition traverser.h:1658
void apply(const process::left_merge &x)
Definition traverser.h:1789
void apply(const process::process_expression &x)
Definition traverser.h:1819
void apply(const process::comm &x)
Definition traverser.h:1721
void apply(const process::rename &x)
Definition traverser.h:1714
void apply(const process::tau &x)
Definition traverser.h:1686
void apply(const process::process_instance_assignment &x)
Definition traverser.h:1672
void apply(const process::action_label &x)
Definition traverser.h:1635
void apply(const process::stochastic_operator &x)
Definition traverser.h:1805
void apply(const process::choice &x)
Definition traverser.h:1797
void apply(const process::process_equation &x)
Definition traverser.h:1651
void apply(const process::if_then &x)
Definition traverser.h:1758
void apply(const process::process_instance &x)
Definition traverser.h:1665
void apply(const process::delta &x)
Definition traverser.h:1679
void apply(const process::merge &x)
Definition traverser.h:1781
void apply(const process::allow &x)
Definition traverser.h:1728
void apply(const process::seq &x)
Definition traverser.h:1750
void apply(const process::left_merge &x)
Definition traverser.h:522
void apply(const process::choice &x)
Definition traverser.h:530
void apply(const process::stochastic_operator &x)
Definition traverser.h:538
void apply(const process::action &x)
Definition traverser.h:388
void apply(const process::allow &x)
Definition traverser.h:458
void apply(const process::if_then_else &x)
Definition traverser.h:497
void apply(const process::process_specification &x)
Definition traverser.h:366
void apply(const process::bounded_init &x)
Definition traverser.h:506
void apply(const process::untyped_multi_action &x)
Definition traverser.h:381
void apply(const process::process_instance &x)
Definition traverser.h:395
void apply(const process::delta &x)
Definition traverser.h:409
void apply(const process::merge &x)
Definition traverser.h:514
void apply(const process::process_expression &x)
Definition traverser.h:553
void apply(const process::block &x)
Definition traverser.h:430
void apply(const process::process_equation &x)
Definition traverser.h:374
void apply(const process::if_then &x)
Definition traverser.h:489
void apply(const process::untyped_process_assignment &x)
Definition traverser.h:546
void apply(const process::process_instance_assignment &x)
Definition traverser.h:402
void apply(const process::rename &x)
Definition traverser.h:444
void apply(const process::process_expression &x)
Definition traverser.h:1519
void apply(const process::process_specification &x)
Definition traverser.h:1286
void apply(const process::bounded_init &x)
Definition traverser.h:1470
void apply(const process::untyped_multi_action &x)
Definition traverser.h:1336
void apply(const process::process_identifier &x)
Definition traverser.h:1296
void apply(const process::communication_expression &x)
Definition traverser.h:1321
void apply(const process::process_equation &x)
Definition traverser.h:1304
void apply(const process::untyped_process_assignment &x)
Definition traverser.h:1511
void apply(const process::if_then_else &x)
Definition traverser.h:1461
void apply(const process::rename_expression &x)
Definition traverser.h:1313
void apply(const process::action_name_multiset &x)
Definition traverser.h:1329
void apply(const process::left_merge &x)
Definition traverser.h:1486
void apply(const process::stochastic_operator &x)
Definition traverser.h:1502
void apply(const process::if_then &x)
Definition traverser.h:1453
void apply(const process::process_instance &x)
Definition traverser.h:1351
void apply(const process::process_instance_assignment &x)
Definition traverser.h:1359
void apply(const process::action_label &x)
Definition traverser.h:1278
void apply(const process::process_instance &x)
Definition traverser.h:691
void apply(const process::process_expression &x)
Definition traverser.h:845
void apply(const process::left_merge &x)
Definition traverser.h:815
void apply(const process::stochastic_operator &x)
Definition traverser.h:831
void apply(const process::if_then_else &x)
Definition traverser.h:791
void apply(const process::if_then &x)
Definition traverser.h:784
void apply(const process::process_instance_assignment &x)
Definition traverser.h:698
void apply(const process::bounded_init &x)
Definition traverser.h:799
void apply(const process::untyped_process_assignment &x)
Definition traverser.h:838
void apply(const process::process_specification &x)
Definition traverser.h:669
void apply(const process::process_equation &x)
Definition traverser.h:677
void apply(const process::process_instance &x)
Definition traverser.h:88
void apply(const process::process_equation &x)
Definition traverser.h:64
void apply(const process::process_specification &x)
Definition traverser.h:47
void apply(const process::block &x)
Definition traverser.h:126
void apply(const process::process_identifier &x)
Definition traverser.h:57
void apply(const process::rename &x)
Definition traverser.h:140
void apply(const process::allow &x)
Definition traverser.h:154
void apply(const process::delta &x)
Definition traverser.h:104
void apply(const process::merge &x)
Definition traverser.h:210
void apply(const process::action &x)
Definition traverser.h:80
void apply(const process::action_label &x)
Definition traverser.h:40
void apply(const process::process_instance_assignment &x)
Definition traverser.h:96
void apply(const process::untyped_process_assignment &x)
Definition traverser.h:243
void apply(const process::bounded_init &x)
Definition traverser.h:202
void apply(const process::choice &x)
Definition traverser.h:226
void apply(const process::if_then &x)
Definition traverser.h:185
void apply(const process::stochastic_operator &x)
Definition traverser.h:234
void apply(const process::process_expression &x)
Definition traverser.h:250
void apply(const process::left_merge &x)
Definition traverser.h:218
void apply(const process::untyped_multi_action &x)
Definition traverser.h:73
void apply(const process::if_then_else &x)
Definition traverser.h:193
void apply(const process::sync &x)
Definition traverser.h:1073
void apply(const process::process_equation &x)
Definition traverser.h:977
void apply(const process::comm &x)
Definition traverser.h:1059
void apply(const process::bounded_init &x)
Definition traverser.h:1114
void apply(const process::if_then_else &x)
Definition traverser.h:1105
void apply(const process::choice &x)
Definition traverser.h:1138
void apply(const process::tau &x)
Definition traverser.h:1023
void apply(const process::allow &x)
Definition traverser.h:1066
void apply(const process::process_instance &x)
Definition traverser.h:1000
void apply(const process::merge &x)
Definition traverser.h:1122
void apply(const process::process_specification &x)
Definition traverser.h:961
void apply(const process::process_identifier &x)
Definition traverser.h:970
void apply(const process::at &x)
Definition traverser.h:1081
void apply(const process::sum &x)
Definition traverser.h:1030
void apply(const process::untyped_multi_action &x)
Definition traverser.h:986
void apply(const process::left_merge &x)
Definition traverser.h:1130
void apply(const process::stochastic_operator &x)
Definition traverser.h:1146
void apply(const process::process_instance_assignment &x)
Definition traverser.h:1008
void apply(const process::if_then &x)
Definition traverser.h:1097
void apply(const process::hide &x)
Definition traverser.h:1045
void apply(const process::seq &x)
Definition traverser.h:1089
void apply(const process::process_expression &x)
Definition traverser.h:1162
void apply(const process::rename &x)
Definition traverser.h:1052
void apply(const process::block &x)
Definition traverser.h:1038
void apply(const process::untyped_process_assignment &x)
Definition traverser.h:1155
void apply(const process::delta &x)
Definition traverser.h:1016
void apply(const process::action &x)
Definition traverser.h:993
add your file description here.