/[eiffelstudio]/branches/eth/eve/Src/framework/code_analysis/rule_checkers/ca_all_rules_checker.e
ViewVC logotype

Contents of /branches/eth/eve/Src/framework/code_analysis/rule_checkers/ca_all_rules_checker.e

Parent Directory Parent Directory | Revision Log Revision Log


Revision 98312 - (show annotations)
Tue Dec 22 13:53:15 2015 UTC (4 years ago) by evemerge
File size: 22711 byte(s)
Partial merge from trunk#98292.
SVN tree conflicts and regular conflicts have been resolved,
but some compilation errors in EVE still exist.

1 note
2 description: "[
3 Checks a set of (standard) rules (see {CA_STANDARD_RULE}). The rules have to
4 register their AST visitor agents here.
5 ]"
6 author: "Stefan Zurfluh"
7 date: "$Date$"
8 revision: "$Revision$"
9
10 class
11 CA_ALL_RULES_CHECKER
12
13 inherit
14
15 AST_ITERATOR
16 redefine
17 process_access_id_as,
18 process_assign_as,
19 process_assigner_call_as,
20 process_bang_creation_as,
21 process_bin_eq_as,
22 process_bin_ge_as,
23 process_bin_gt_as,
24 process_bin_le_as,
25 process_bin_lt_as,
26 process_bin_ne_as,
27 process_body_as,
28 process_case_as,
29 process_converted_expr_as,
30 process_create_as,
31 process_create_creation_as,
32 process_creation_as,
33 process_do_as,
34 process_eiffel_list,
35 process_elseif_as,
36 process_feature_as,
37 process_feature_clause_as,
38 process_id_as,
39 process_if_as,
40 process_inline_agent_creation_as,
41 process_inspect_as,
42 process_instr_call_as,
43 process_loop_as,
44 process_nested_as,
45 process_object_test_as,
46 process_once_as,
47 process_paran_as,
48 process_routine_as,
49 process_unary_as,
50 process_un_not_as,
51 process_integer_as,
52 process_real_as
53 end
54
55 create
56 make
57
58 feature {NONE} -- Initialization
59
60 make
61 do
62 last_run_successful := False
63
64 create_action_lists
65 end
66
67 create_action_lists
68 -- Creates all the lists of agents that will be called when visiting
69 -- certain AST nodes.
70 do
71 create access_id_pre_actions.make
72 create access_id_post_actions.make
73 create assign_pre_actions.make
74 create assign_post_actions.make
75 create assigner_call_pre_actions.make
76 create assigner_call_post_actions.make
77 create bang_creation_pre_actions.make
78 create bang_creation_post_actions.make
79 create bin_eq_pre_actions.make
80 create bin_eq_post_actions.make
81 create bin_ge_pre_actions.make
82 create bin_ge_post_actions.make
83 create bin_gt_pre_actions.make
84 create bin_gt_post_actions.make
85 create bin_le_pre_actions.make
86 create bin_le_post_actions.make
87 create bin_lt_pre_actions.make
88 create bin_lt_post_actions.make
89 create bin_ne_pre_actions.make
90 create bin_ne_post_actions.make
91 create body_pre_actions.make
92 create body_post_actions.make
93 create case_pre_actions.make
94 create case_post_actions.make
95 create class_pre_actions.make
96 create class_post_actions.make
97 create converted_expr_pre_actions.make
98 create converted_expr_post_actions.make
99 create create_pre_actions.make
100 create create_post_actions.make
101 create create_creation_pre_actions.make
102 create create_creation_post_actions.make
103 create creation_pre_actions.make
104 create creation_post_actions.make
105 create do_pre_actions.make
106 create do_post_actions.make
107 create eiffel_list_pre_actions.make
108 create eiffel_list_post_actions.make
109 create elseif_pre_actions.make
110 create elseif_post_actions.make
111 create feature_pre_actions.make
112 create feature_post_actions.make
113 create feature_clause_pre_actions.make
114 create feature_clause_post_actions.make
115 create id_pre_actions.make
116 create id_post_actions.make
117 create if_pre_actions.make
118 create if_post_actions.make
119 create inspect_pre_actions.make
120 create inspect_post_actions.make
121 create instruction_call_pre_actions.make
122 create instruction_call_post_actions.make
123 create loop_pre_actions.make
124 create loop_post_actions.make
125 create nested_pre_actions.make
126 create nested_post_actions.make
127 create object_test_pre_actions.make
128 create object_test_post_actions.make
129 create once_pre_actions.make
130 create once_post_actions.make
131 create paran_pre_actions.make
132 create paran_post_actions.make
133 create routine_pre_actions.make
134 create routine_post_actions.make
135 create unary_pre_actions.make
136 create unary_post_actions.make
137 create un_not_pre_actions.make
138 create un_not_post_actions.make create integer_pre_actions.make
139 create integer_post_actions.make
140 create real_pre_actions.make
141 create real_post_actions.make
142 end
143
144 feature {CA_STANDARD_RULE} -- Adding agents
145
146 add_access_id_pre_action (a_action: attached PROCEDURE [ACCESS_ID_AS])
147 do
148 access_id_pre_actions.extend (a_action)
149 end
150
151 add_access_id_post_action (a_action: attached PROCEDURE [ACCESS_ID_AS])
152 do
153 access_id_post_actions.extend (a_action)
154 end
155
156 add_assign_pre_action (a_action: attached PROCEDURE [ASSIGN_AS])
157 do
158 assign_pre_actions.extend (a_action)
159 end
160
161 add_assign_post_action (a_action: attached PROCEDURE [ASSIGN_AS])
162 do
163 assign_post_actions.extend (a_action)
164 end
165
166 add_assigner_call_pre_action (a_action: attached PROCEDURE [ASSIGNER_CALL_AS])
167 do
168 assigner_call_pre_actions.extend (a_action)
169 end
170
171 add_assigner_call_post_action (a_action: attached PROCEDURE [ASSIGNER_CALL_AS])
172 do
173 assigner_call_post_actions.extend (a_action)
174 end
175
176 add_bang_creation_pre_action (a_action: attached PROCEDURE [BANG_CREATION_AS])
177 do
178 bang_creation_pre_actions.extend (a_action)
179 end
180
181 add_bang_creation_post_action (a_action: attached PROCEDURE [BANG_CREATION_AS])
182 do
183 bang_creation_post_actions.extend (a_action)
184 end
185
186 add_bin_eq_pre_action (a_action: attached PROCEDURE [BIN_EQ_AS])
187 do
188 bin_eq_pre_actions.extend (a_action)
189 end
190
191 add_bin_eq_post_action (a_action: attached PROCEDURE [BIN_EQ_AS])
192 do
193 bin_eq_post_actions.extend (a_action)
194 end
195
196 add_bin_ge_pre_action (a_action: attached PROCEDURE [BIN_GE_AS])
197 do
198 bin_ge_pre_actions.extend (a_action)
199 end
200
201 add_bin_ge_post_action (a_action: attached PROCEDURE [BIN_GE_AS])
202 do
203 bin_ge_post_actions.extend (a_action)
204 end
205
206 add_bin_gt_pre_action (a_action: attached PROCEDURE [BIN_GT_AS])
207 do
208 bin_gt_pre_actions.extend (a_action)
209 end
210
211 add_bin_gt_post_action (a_action: attached PROCEDURE [BIN_GT_AS])
212 do
213 bin_gt_post_actions.extend (a_action)
214 end
215
216 add_bin_le_pre_action (a_action: attached PROCEDURE [BIN_LE_AS])
217 do
218 bin_le_pre_actions.extend (a_action)
219 end
220
221 add_bin_le_post_action (a_action: attached PROCEDURE [BIN_LE_AS])
222 do
223 bin_le_post_actions.extend (a_action)
224 end
225
226 add_bin_lt_pre_action (a_action: attached PROCEDURE [BIN_LT_AS])
227 do
228 bin_lt_pre_actions.extend (a_action)
229 end
230
231 add_bin_lt_post_action (a_action: attached PROCEDURE [BIN_LT_AS])
232 do
233 bin_lt_post_actions.extend (a_action)
234 end
235
236 add_bin_ne_pre_action (a_action: attached PROCEDURE [BIN_NE_AS])
237 do
238 bin_ne_pre_actions.extend (a_action)
239 end
240
241 add_bin_ne_post_action (a_action: attached PROCEDURE [BIN_NE_AS])
242 do
243 bin_ne_post_actions.extend (a_action)
244 end
245
246 add_body_pre_action (a_action: attached PROCEDURE [BODY_AS]) do
247 body_pre_actions.extend (a_action)
248 end
249
250 add_body_post_action (a_action: attached PROCEDURE [BODY_AS])
251 do
252 body_post_actions.extend (a_action)
253 end
254
255 add_case_pre_action (a_action: attached PROCEDURE [CASE_AS])
256 do
257 case_pre_actions.extend (a_action)
258 end
259
260 add_case_post_action (a_action: attached PROCEDURE [CASE_AS])
261 do
262 case_post_actions.extend (a_action)
263 end
264
265 add_class_pre_action (a_action: attached PROCEDURE [CLASS_AS])
266 do
267 class_pre_actions.extend (a_action)
268 end
269
270 add_class_post_action (a_action: attached PROCEDURE [CLASS_AS])
271 do
272 class_post_actions.extend (a_action)
273 end
274
275 add_converted_expr_pre_action (a_action: attached PROCEDURE [CONVERTED_EXPR_AS])
276 do
277 converted_expr_pre_actions.extend (a_action)
278 end
279
280 add_converted_expr_post_action (a_action: attached PROCEDURE [CONVERTED_EXPR_AS])
281 do
282 converted_expr_post_actions.extend (a_action)
283 end
284
285 add_create_pre_action (a_action: attached PROCEDURE [CREATE_AS])
286 do
287 create_pre_actions.extend (a_action)
288 end
289
290 add_create_post_action (a_action: attached PROCEDURE [CREATE_AS])
291 do
292 create_post_actions.extend (a_action)
293 end
294
295 add_create_creation_pre_action (a_action: attached PROCEDURE [CREATE_CREATION_AS])
296 do
297 create_creation_pre_actions.extend (a_action)
298 end
299
300 add_create_creation_post_action (a_action: attached PROCEDURE [CREATE_CREATION_AS])
301 do
302 create_creation_post_actions.extend (a_action)
303 end
304
305 add_creation_pre_action (a_action: attached PROCEDURE [CREATION_AS])
306 do
307 creation_pre_actions.extend (a_action)
308 end
309
310 add_creation_post_action (a_action: attached PROCEDURE [CREATION_AS])
311 do
312 creation_post_actions.extend (a_action)
313 end
314
315 add_do_pre_action (a_action: attached PROCEDURE [DO_AS])
316 do
317 do_pre_actions.extend (a_action)
318 end
319
320 add_do_post_action (a_action: attached PROCEDURE [DO_AS])
321 do
322 do_post_actions.extend (a_action)
323 end
324
325 add_eiffel_list_pre_action (a_action: attached PROCEDURE [EIFFEL_LIST [AST_EIFFEL]])
326 do
327 eiffel_list_pre_actions.extend (a_action)
328 end
329
330 add_eiffel_list_post_action (a_action: attached PROCEDURE [EIFFEL_LIST [AST_EIFFEL]])
331 do
332 eiffel_list_post_actions.extend (a_action)
333 end
334
335 add_elseif_pre_action (a_action: attached PROCEDURE [ELSIF_AS])
336 do
337 elseif_pre_actions.extend (a_action)
338 end
339
340 add_elseif_post_action (a_action: attached PROCEDURE [ELSIF_AS])
341 do
342 elseif_post_actions.extend (a_action)
343 end
344
345 add_feature_pre_action (a_action: attached PROCEDURE [FEATURE_AS])
346 do
347 feature_pre_actions.extend (a_action)
348 end
349
350 add_feature_post_action (a_action: attached PROCEDURE [FEATURE_AS])
351 do
352 feature_post_actions.extend (a_action)
353 end
354
355 add_feature_clause_pre_action (a_action: attached PROCEDURE [FEATURE_CLAUSE_AS])
356 do
357 feature_clause_pre_actions.extend (a_action)
358 end
359
360 add_feature_clause_post_action (a_action: attached PROCEDURE [FEATURE_CLAUSE_AS])
361 do
362 feature_clause_post_actions.extend (a_action)
363 end
364
365 add_id_pre_action (a_action: attached PROCEDURE [ID_AS])
366 do
367 id_pre_actions.extend (a_action)
368 end
369
370 add_id_post_action (a_action: attached PROCEDURE [ID_AS])
371 do
372 id_post_actions.extend (a_action)
373 end
374
375 add_if_pre_action (a_action: attached PROCEDURE [IF_AS])
376 do
377 if_pre_actions.extend (a_action)
378 end
379
380 add_if_post_action (a_action: attached PROCEDURE [IF_AS])
381 do
382 if_post_actions.extend (a_action)
383 end
384
385 add_inspect_pre_action (a_action: attached PROCEDURE [INSPECT_AS])
386 do
387 inspect_pre_actions.extend (a_action)
388 end
389
390 add_inspect_post_action (a_action: attached PROCEDURE [INSPECT_AS])
391 do
392 inspect_post_actions.extend (a_action)
393 end
394
395 add_instruction_call_pre_action (a_action: attached PROCEDURE [INSTR_CALL_AS])
396 do
397 instruction_call_pre_actions.extend (a_action)
398 end
399
400 add_instruction_call_post_action (a_action: attached PROCEDURE [INSTR_CALL_AS])
401 do
402 instruction_call_post_actions.extend (a_action)
403 end
404
405 add_loop_pre_action (a_action: attached PROCEDURE [LOOP_AS])
406 do
407 loop_pre_actions.extend (a_action)
408 end
409
410 add_loop_post_action (a_action: attached PROCEDURE [LOOP_AS])
411 do
412 loop_post_actions.extend (a_action)
413 end
414
415 add_nested_pre_action (a_action: attached PROCEDURE [NESTED_AS])
416 do
417 nested_pre_actions.extend (a_action)
418 end
419
420 add_nested_post_action (a_action: attached PROCEDURE [NESTED_AS])
421 do
422 nested_post_actions.extend (a_action)
423 end
424
425 add_object_test_pre_action (a_action: attached PROCEDURE [OBJECT_TEST_AS])
426 do
427 object_test_pre_actions.extend (a_action)
428 end
429
430 add_object_test_post_action (a_action: attached PROCEDURE [OBJECT_TEST_AS])
431 do
432 object_test_post_actions.extend (a_action)
433 end
434
435 add_once_pre_action (a_action: attached PROCEDURE [ONCE_AS])
436 do
437 once_pre_actions.extend (a_action)
438 end
439
440 add_once_post_action (a_action: attached PROCEDURE [ONCE_AS])
441 do
442 once_post_actions.extend (a_action)
443 end
444
445 add_paran_pre_action (a_action: attached PROCEDURE [PARAN_AS])
446 do
447 paran_pre_actions.extend (a_action)
448 end
449
450 add_paran_post_action (a_action: attached PROCEDURE [PARAN_AS])
451 do
452 paran_post_actions.extend (a_action)
453 end
454
455 add_routine_pre_action (a_action: attached PROCEDURE [ROUTINE_AS])
456 do
457 routine_pre_actions.extend (a_action)
458 end
459
460 add_routine_post_action (a_action: attached PROCEDURE [ROUTINE_AS])
461 do
462 routine_post_actions.extend (a_action)
463 end
464
465 add_unary_pre_action (a_action: attached PROCEDURE [ANY, UNARY_AS])
466 do
467 unary_pre_actions.extend (a_action)
468 end
469
470 add_unary_post_action (a_action: attached PROCEDURE [ANY, UNARY_AS])
471 do
472 unary_post_actions.extend (a_action)
473 end
474
475 add_un_not_pre_action (a_action: attached PROCEDURE [ANY, UN_NOT_AS]) do
476 un_not_pre_actions.extend (a_action)
477 end
478
479 add_un_not_post_action (a_action: attached PROCEDURE [UN_NOT_AS])
480 do
481 un_not_post_actions.extend (a_action)
482 end
483
484 add_integer_pre_action (a_action: attached PROCEDURE [ANY, TUPLE [INTEGER_AS]])
485 do
486 integer_pre_actions.extend (a_action)
487 end
488
489 add_integer_post_action (a_action: attached PROCEDURE [ANY, TUPLE [INTEGER_AS]])
490 do
491 integer_post_actions.extend (a_action)
492 end
493
494 add_real_pre_action (a_action: attached PROCEDURE [ANY, TUPLE [REAL_AS]])
495 do
496 real_pre_actions.extend (a_action)
497 end
498
499 add_real_post_action (a_action: attached PROCEDURE [ANY, TUPLE [REAL_AS]])
500 do
501 real_post_actions.extend (a_action)
502 end
503
504 feature {NONE} -- Agent lists
505
506 access_id_pre_actions, access_id_post_actions: ACTION_SEQUENCE [TUPLE [ACCESS_ID_AS]]
507
508 assign_pre_actions, assign_post_actions: ACTION_SEQUENCE [TUPLE [ASSIGN_AS]]
509
510 assigner_call_pre_actions, assigner_call_post_actions: ACTION_SEQUENCE [TUPLE [ASSIGNER_CALL_AS]]
511
512 bang_creation_pre_actions, bang_creation_post_actions: ACTION_SEQUENCE [TUPLE [BANG_CREATION_AS]]
513
514 bin_eq_pre_actions, bin_eq_post_actions: ACTION_SEQUENCE [TUPLE [BIN_EQ_AS]]
515
516 bin_ge_pre_actions, bin_ge_post_actions: ACTION_SEQUENCE [TUPLE [BIN_GE_AS]]
517
518 bin_gt_pre_actions, bin_gt_post_actions: ACTION_SEQUENCE [TUPLE [BIN_GT_AS]]
519
520 bin_le_pre_actions, bin_le_post_actions: ACTION_SEQUENCE [TUPLE [BIN_LE_AS]]
521
522 bin_lt_pre_actions, bin_lt_post_actions: ACTION_SEQUENCE [TUPLE [BIN_LT_AS]]
523
524 bin_ne_pre_actions, bin_ne_post_actions: ACTION_SEQUENCE [TUPLE [BIN_NE_AS]]
525
526 body_pre_actions, body_post_actions: ACTION_SEQUENCE [TUPLE [BODY_AS]]
527
528 case_pre_actions, case_post_actions: ACTION_SEQUENCE [TUPLE [CASE_AS]]
529
530 class_pre_actions, class_post_actions: ACTION_SEQUENCE [TUPLE [CLASS_AS]]
531
532 converted_expr_pre_actions, converted_expr_post_actions: ACTION_SEQUENCE [TUPLE [CONVERTED_EXPR_AS]]
533
534 create_pre_actions, create_post_actions: ACTION_SEQUENCE [TUPLE [CREATE_AS]]
535
536 create_creation_pre_actions, create_creation_post_actions: ACTION_SEQUENCE [TUPLE [CREATE_CREATION_AS]]
537
538 creation_pre_actions, creation_post_actions: ACTION_SEQUENCE [TUPLE [CREATION_AS]]
539
540 do_pre_actions, do_post_actions: ACTION_SEQUENCE [TUPLE [DO_AS]]
541
542 eiffel_list_pre_actions, eiffel_list_post_actions: ACTION_SEQUENCE [TUPLE [EIFFEL_LIST [AST_EIFFEL]]]
543
544 elseif_pre_actions, elseif_post_actions: ACTION_SEQUENCE [TUPLE [ELSIF_AS]]
545
546 feature_pre_actions, feature_post_actions: ACTION_SEQUENCE [TUPLE [FEATURE_AS]]
547
548 feature_clause_pre_actions, feature_clause_post_actions: ACTION_SEQUENCE [TUPLE [FEATURE_CLAUSE_AS]]
549
550 id_pre_actions, id_post_actions: ACTION_SEQUENCE [TUPLE [ID_AS]]
551
552 if_pre_actions, if_post_actions: ACTION_SEQUENCE [TUPLE [IF_AS]]
553
554 inspect_pre_actions, inspect_post_actions: ACTION_SEQUENCE [TUPLE [INSPECT_AS]]
555
556 instruction_call_pre_actions, instruction_call_post_actions: ACTION_SEQUENCE [TUPLE [INSTR_CALL_AS]]
557
558 loop_pre_actions, loop_post_actions: ACTION_SEQUENCE [TUPLE [LOOP_AS]]
559
560 nested_pre_actions, nested_post_actions: ACTION_SEQUENCE [TUPLE [NESTED_AS]]
561
562 object_test_pre_actions, object_test_post_actions: ACTION_SEQUENCE [TUPLE [OBJECT_TEST_AS]]
563
564 once_pre_actions, once_post_actions: ACTION_SEQUENCE [TUPLE [ONCE_AS]]
565
566 paran_pre_actions, paran_post_actions: ACTION_SEQUENCE [TUPLE [PARAN_AS]]
567
568 routine_pre_actions, routine_post_actions: ACTION_SEQUENCE [TUPLE [ROUTINE_AS]]
569
570 unary_pre_actions, unary_post_actions: ACTION_SEQUENCE [TUPLE [UNARY_AS]]
571
572 un_not_pre_actions, un_not_post_actions: ACTION_SEQUENCE [TUPLE [UN_NOT_AS]]
573
574 integer_pre_actions, integer_post_actions: ACTION_SEQUENCE [TUPLE [INTEGER_AS]]
575
576 real_pre_actions, real_post_actions: ACTION_SEQUENCE [TUPLE [REAL_AS]]
577
578 feature {CA_RULE_CHECKING_TASK} -- Execution Commands
579
580 run_on_class (a_class_to_check: CLASS_C)
581 -- Check all rules that have added their agents.
582 local
583 l_ast: CLASS_AS
584 do
585 last_run_successful := False
586 l_ast := a_class_to_check.ast
587 class_pre_actions.call ([l_ast])
588 process_class_as (l_ast)
589 class_post_actions.call ([l_ast])
590 last_run_successful := True
591 end
592
593 feature {NONE} -- Processing
594
595 process_access_id_as (a_id: ACCESS_ID_AS)
596 do
597 access_id_pre_actions.call ([a_id])
598 Precursor (a_id)
599 access_id_post_actions.call ([a_id])
600 end
601
602 process_assign_as (a_assign: ASSIGN_AS)
603 do
604 assign_pre_actions.call ([a_assign])
605 Precursor (a_assign)
606 assign_post_actions.call ([a_assign])
607 end
608
609 process_assigner_call_as (a_assigner_call: ASSIGNER_CALL_AS)
610 do
611 assigner_call_pre_actions.call ([a_assigner_call])
612 Precursor (a_assigner_call)
613 assigner_call_post_actions.call ([a_assigner_call])
614 end
615
616 process_bang_creation_as (a_bang_creation: BANG_CREATION_AS)
617 do
618 bang_creation_pre_actions.call ([a_bang_creation])
619 Precursor (a_bang_creation)
620 bang_creation_post_actions.call ([a_bang_creation])
621 end
622
623 process_bin_eq_as (a_bin_eq: BIN_EQ_AS)
624 do
625 bin_eq_pre_actions.call ([a_bin_eq])
626 Precursor (a_bin_eq)
627 bin_eq_post_actions.call ([a_bin_eq])
628 end
629
630 process_bin_ge_as (a_bin_ge: BIN_GE_AS)
631 do
632 bin_ge_pre_actions.call ([a_bin_ge])
633 Precursor (a_bin_ge)
634 bin_ge_post_actions.call ([a_bin_ge])
635 end
636
637 process_bin_gt_as (a_bin_gt: BIN_GT_AS)
638 do
639 bin_gt_pre_actions.call ([a_bin_gt])
640 Precursor (a_bin_gt)
641 bin_gt_post_actions.call ([a_bin_gt])
642 end
643
644 process_bin_le_as (a_bin_le: BIN_LE_AS)
645 do
646 bin_le_pre_actions.call ([a_bin_le])
647 Precursor (a_bin_le)
648 bin_le_post_actions.call ([a_bin_le])
649 end
650
651 process_bin_lt_as (a_bin_lt: BIN_LT_AS)
652 do
653 bin_lt_pre_actions.call ([a_bin_lt])
654 Precursor (a_bin_lt)
655 bin_lt_post_actions.call ([a_bin_lt])
656 end
657
658 process_bin_ne_as (a_bin_ne: BIN_NE_AS)
659 do
660 bin_ne_pre_actions.call ([a_bin_ne])
661 Precursor (a_bin_ne)
662 bin_ne_post_actions.call ([a_bin_ne])
663 end
664
665 process_body_as (a_body: BODY_AS)
666 do
667 body_pre_actions.call ([a_body])
668 Precursor (a_body)
669 body_post_actions.call ([a_body])
670 end
671
672 process_case_as (a_case: CASE_AS)
673 do
674 case_pre_actions.call ([a_case])
675 Precursor (a_case)
676 case_post_actions.call ([a_case])
677 end
678
679 process_converted_expr_as (a_conv: CONVERTED_EXPR_AS)
680 do
681 converted_expr_pre_actions.call ([a_conv])
682 Precursor (a_conv)
683 converted_expr_post_actions.call ([a_conv])
684 end
685
686 process_create_as (a_create: CREATE_AS)
687 do
688 create_pre_actions.call ([a_create])
689 Precursor (a_create)
690 create_post_actions.call ([a_create])
691 end
692
693 process_create_creation_as (a_create_creation: CREATE_CREATION_AS)
694 do
695 create_creation_pre_actions.call ([a_create_creation])
696 Precursor (a_create_creation)
697 create_creation_post_actions.call ([a_create_creation])
698 end
699
700 process_creation_as (a_creation: CREATION_AS)
701 do
702 creation_pre_actions.call ([a_creation])
703 Precursor (a_creation)
704 creation_post_actions.call ([a_creation])
705 end
706
707 process_do_as (a_do: DO_AS)
708 do
709 do_pre_actions.call ([a_do])
710 Precursor (a_do)
711 do_post_actions.call ([a_do])
712 end
713
714 process_eiffel_list (a_list: EIFFEL_LIST [AST_EIFFEL])
715 do
716 eiffel_list_pre_actions.call ([a_list])
717 Precursor (a_list)
718 eiffel_list_post_actions.call ([a_list])
719 end
720
721 process_elseif_as (a_elseif: ELSIF_AS)
722 do
723 elseif_pre_actions.call ([a_elseif])
724 Precursor (a_elseif)
725 elseif_post_actions.call ([a_elseif])
726 end
727
728 process_feature_as (a_feature: FEATURE_AS)
729 do
730 feature_pre_actions.call ([a_feature])
731 Precursor (a_feature)
732 feature_post_actions.call ([a_feature])
733 end
734
735 process_feature_clause_as (a_clause: FEATURE_CLAUSE_AS)
736 do
737 feature_clause_pre_actions.call ([a_clause])
738 Precursor (a_clause)
739 feature_clause_post_actions.call ([a_clause])
740 end
741
742 process_id_as (a_id: ID_AS)
743 do
744 id_pre_actions.call ([a_id])
745 Precursor (a_id)
746 id_post_actions.call ([a_id])
747 end
748
749 process_if_as (a_if: IF_AS)
750 do
751 if_pre_actions.call ([a_if])
752 Precursor (a_if)
753 if_post_actions.call ([a_if])
754 end
755
756 process_inline_agent_creation_as (l_as: INLINE_AGENT_CREATION_AS)
757 do
758 -- TODO: 2014-09-22 Processing of inline agent body fails due to feature pre and post processing not being
759 -- called. We simply ignore bodies of inline agents for now and do not process them.
760 --safe_process (l_as.body)
761 safe_process (l_as.operands)
762 end
763
764 process_inspect_as (a_inspect: INSPECT_AS)
765 do
766 inspect_pre_actions.call ([a_inspect])
767 Precursor (a_inspect)
768 inspect_post_actions.call ([a_inspect])
769 end
770
771 process_instr_call_as (a_call: INSTR_CALL_AS)
772 do
773 instruction_call_pre_actions.call ([a_call])
774 Precursor (a_call)
775 instruction_call_post_actions.call ([a_call])
776 end
777
778 process_loop_as (a_loop: LOOP_AS)
779 do
780 loop_pre_actions.call ([a_loop])
781 Precursor (a_loop)
782 loop_post_actions.call ([a_loop])
783 end
784
785 process_nested_as (a_nested: NESTED_AS)
786 do
787 nested_pre_actions.call ([a_nested])
788 Precursor (a_nested)
789 nested_post_actions.call ([a_nested])
790 end
791
792 process_object_test_as (a_ot: OBJECT_TEST_AS)
793 do
794 object_test_pre_actions.call ([a_ot])
795 Precursor (a_ot)
796 object_test_post_actions.call ([a_ot])
797 end
798
799 process_once_as (a_once: ONCE_AS)
800 do
801 once_pre_actions.call ([a_once])
802 Precursor (a_once)
803 once_post_actions.call ([a_once])
804 end
805
806 process_paran_as (a_paran: PARAN_AS)
807 do
808 paran_pre_actions.call ([a_paran])
809 Precursor (a_paran)
810 paran_post_actions.call ([a_paran])
811 end
812
813 process_routine_as (a_routine: ROUTINE_AS)
814 do
815 routine_pre_actions.call ([a_routine])
816 Precursor (a_routine)
817 routine_post_actions.call ([a_routine])
818 end
819
820 process_un_not_as (a_un_not: UN_NOT_AS)
821 do
822 un_not_pre_actions.call ([a_un_not])
823 Precursor (a_un_not)
824 un_not_post_actions.call ([a_un_not])
825 end
826
827 process_unary_as (a_unary: UNARY_AS)
828 do
829 unary_pre_actions.call ([a_unary])
830 Precursor (a_unary)
831 unary_post_actions.call ([a_unary])
832 end
833
834 process_integer_as (a_integer: INTEGER_AS)
835 do
836 integer_pre_actions.call ([a_integer])
837 Precursor (a_integer)
838 integer_post_actions.call ([a_integer])
839 end
840
841 process_real_as (a_real: REAL_AS)
842 do
843 real_pre_actions.call ([a_real])
844 Precursor (a_real)
845 real_post_actions.call ([a_real])
846 end
847
848 feature -- Results
849
850 last_run_successful: BOOLEAN
851
852 feature {NONE} -- Implementation
853
854 frozen rota: detachable ROTA_S
855 -- Access to rota service
856 local
857 l_service_consumer: SERVICE_CONSUMER [ROTA_S]
858 do
859 create l_service_consumer
860 if attached l_service_consumer.service as l_service and then l_service.is_interface_usable then
861 Result := l_service
862 end
863 end
864 end

Properties

Name Value
svn:eol-style native
svn:keywords Author Date ID Revision

  ViewVC Help
Powered by ViewVC 1.1.23