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

Annotation 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 - (hide 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 schmisam 95828 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 schmisam 96890 process_bin_ne_as,
27 schmisam 95828 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 schmisam 96890 create bin_ne_pre_actions.make
90     create bin_ne_post_actions.make
91 schmisam 95828 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 evemerge 98312 create un_not_post_actions.make create integer_pre_actions.make
139 schmisam 95828 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 evemerge 98312 add_access_id_pre_action (a_action: attached PROCEDURE [ACCESS_ID_AS])
147 schmisam 95828 do
148     access_id_pre_actions.extend (a_action)
149     end
150    
151 evemerge 98312 add_access_id_post_action (a_action: attached PROCEDURE [ACCESS_ID_AS])
152 schmisam 95828 do
153     access_id_post_actions.extend (a_action)
154     end
155    
156 evemerge 98312 add_assign_pre_action (a_action: attached PROCEDURE [ASSIGN_AS])
157 schmisam 95828 do
158     assign_pre_actions.extend (a_action)
159     end
160    
161 evemerge 98312 add_assign_post_action (a_action: attached PROCEDURE [ASSIGN_AS])
162 schmisam 95828 do
163     assign_post_actions.extend (a_action)
164     end
165    
166 evemerge 98312 add_assigner_call_pre_action (a_action: attached PROCEDURE [ASSIGNER_CALL_AS])
167 schmisam 95828 do
168     assigner_call_pre_actions.extend (a_action)
169     end
170    
171 evemerge 98312 add_assigner_call_post_action (a_action: attached PROCEDURE [ASSIGNER_CALL_AS])
172 schmisam 95828 do
173     assigner_call_post_actions.extend (a_action)
174     end
175    
176 evemerge 98312 add_bang_creation_pre_action (a_action: attached PROCEDURE [BANG_CREATION_AS])
177 schmisam 95828 do
178     bang_creation_pre_actions.extend (a_action)
179     end
180    
181 evemerge 98312 add_bang_creation_post_action (a_action: attached PROCEDURE [BANG_CREATION_AS])
182 schmisam 95828 do
183     bang_creation_post_actions.extend (a_action)
184     end
185    
186 evemerge 98312 add_bin_eq_pre_action (a_action: attached PROCEDURE [BIN_EQ_AS])
187 schmisam 95828 do
188     bin_eq_pre_actions.extend (a_action)
189     end
190    
191 evemerge 98312 add_bin_eq_post_action (a_action: attached PROCEDURE [BIN_EQ_AS])
192 schmisam 95828 do
193     bin_eq_post_actions.extend (a_action)
194     end
195    
196 evemerge 98312 add_bin_ge_pre_action (a_action: attached PROCEDURE [BIN_GE_AS])
197 schmisam 95828 do
198     bin_ge_pre_actions.extend (a_action)
199     end
200    
201 evemerge 98312 add_bin_ge_post_action (a_action: attached PROCEDURE [BIN_GE_AS])
202 schmisam 95828 do
203     bin_ge_post_actions.extend (a_action)
204     end
205    
206 evemerge 98312 add_bin_gt_pre_action (a_action: attached PROCEDURE [BIN_GT_AS])
207 schmisam 95828 do
208     bin_gt_pre_actions.extend (a_action)
209     end
210    
211 evemerge 98312 add_bin_gt_post_action (a_action: attached PROCEDURE [BIN_GT_AS])
212 schmisam 95828 do
213     bin_gt_post_actions.extend (a_action)
214     end
215    
216 evemerge 98312 add_bin_le_pre_action (a_action: attached PROCEDURE [BIN_LE_AS])
217 schmisam 95828 do
218     bin_le_pre_actions.extend (a_action)
219     end
220    
221 evemerge 98312 add_bin_le_post_action (a_action: attached PROCEDURE [BIN_LE_AS])
222 schmisam 95828 do
223     bin_le_post_actions.extend (a_action)
224     end
225    
226 evemerge 98312 add_bin_lt_pre_action (a_action: attached PROCEDURE [BIN_LT_AS])
227 schmisam 95828 do
228     bin_lt_pre_actions.extend (a_action)
229     end
230    
231 evemerge 98312 add_bin_lt_post_action (a_action: attached PROCEDURE [BIN_LT_AS])
232 schmisam 95828 do
233     bin_lt_post_actions.extend (a_action)
234     end
235    
236 evemerge 98312 add_bin_ne_pre_action (a_action: attached PROCEDURE [BIN_NE_AS])
237 schmisam 96890 do
238     bin_ne_pre_actions.extend (a_action)
239     end
240    
241 evemerge 98312 add_bin_ne_post_action (a_action: attached PROCEDURE [BIN_NE_AS])
242 schmisam 96890 do
243     bin_ne_post_actions.extend (a_action)
244     end
245    
246 evemerge 98312 add_body_pre_action (a_action: attached PROCEDURE [BODY_AS]) do
247 schmisam 95828 body_pre_actions.extend (a_action)
248     end
249    
250 evemerge 98312 add_body_post_action (a_action: attached PROCEDURE [BODY_AS])
251 schmisam 95828 do
252     body_post_actions.extend (a_action)
253     end
254    
255 evemerge 98312 add_case_pre_action (a_action: attached PROCEDURE [CASE_AS])
256 schmisam 95828 do
257     case_pre_actions.extend (a_action)
258     end
259    
260 evemerge 98312 add_case_post_action (a_action: attached PROCEDURE [CASE_AS])
261 schmisam 95828 do
262     case_post_actions.extend (a_action)
263     end
264    
265 evemerge 98312 add_class_pre_action (a_action: attached PROCEDURE [CLASS_AS])
266 schmisam 95828 do
267     class_pre_actions.extend (a_action)
268     end
269    
270 evemerge 98312 add_class_post_action (a_action: attached PROCEDURE [CLASS_AS])
271 schmisam 95828 do
272     class_post_actions.extend (a_action)
273     end
274    
275 evemerge 98312 add_converted_expr_pre_action (a_action: attached PROCEDURE [CONVERTED_EXPR_AS])
276 schmisam 95828 do
277     converted_expr_pre_actions.extend (a_action)
278     end
279    
280 evemerge 98312 add_converted_expr_post_action (a_action: attached PROCEDURE [CONVERTED_EXPR_AS])
281 schmisam 95828 do
282     converted_expr_post_actions.extend (a_action)
283     end
284    
285 evemerge 98312 add_create_pre_action (a_action: attached PROCEDURE [CREATE_AS])
286 schmisam 95828 do
287     create_pre_actions.extend (a_action)
288     end
289    
290 evemerge 98312 add_create_post_action (a_action: attached PROCEDURE [CREATE_AS])
291 schmisam 95828 do
292     create_post_actions.extend (a_action)
293     end
294    
295 evemerge 98312 add_create_creation_pre_action (a_action: attached PROCEDURE [CREATE_CREATION_AS])
296 schmisam 95828 do
297     create_creation_pre_actions.extend (a_action)
298     end
299    
300 evemerge 98312 add_create_creation_post_action (a_action: attached PROCEDURE [CREATE_CREATION_AS])
301 schmisam 95828 do
302     create_creation_post_actions.extend (a_action)
303     end
304    
305 evemerge 98312 add_creation_pre_action (a_action: attached PROCEDURE [CREATION_AS])
306 schmisam 95828 do
307     creation_pre_actions.extend (a_action)
308     end
309    
310 evemerge 98312 add_creation_post_action (a_action: attached PROCEDURE [CREATION_AS])
311 schmisam 95828 do
312     creation_post_actions.extend (a_action)
313     end
314    
315 evemerge 98312 add_do_pre_action (a_action: attached PROCEDURE [DO_AS])
316 schmisam 95828 do
317     do_pre_actions.extend (a_action)
318     end
319    
320 evemerge 98312 add_do_post_action (a_action: attached PROCEDURE [DO_AS])
321 schmisam 95828 do
322     do_post_actions.extend (a_action)
323     end
324    
325 evemerge 98312 add_eiffel_list_pre_action (a_action: attached PROCEDURE [EIFFEL_LIST [AST_EIFFEL]])
326 schmisam 95828 do
327     eiffel_list_pre_actions.extend (a_action)
328     end
329    
330 evemerge 98312 add_eiffel_list_post_action (a_action: attached PROCEDURE [EIFFEL_LIST [AST_EIFFEL]])
331 schmisam 95828 do
332     eiffel_list_post_actions.extend (a_action)
333     end
334    
335 evemerge 98312 add_elseif_pre_action (a_action: attached PROCEDURE [ELSIF_AS])
336 schmisam 95828 do
337     elseif_pre_actions.extend (a_action)
338     end
339    
340 evemerge 98312 add_elseif_post_action (a_action: attached PROCEDURE [ELSIF_AS])
341 schmisam 95828 do
342     elseif_post_actions.extend (a_action)
343     end
344    
345 evemerge 98312 add_feature_pre_action (a_action: attached PROCEDURE [FEATURE_AS])
346 schmisam 95828 do
347     feature_pre_actions.extend (a_action)
348     end
349    
350 evemerge 98312 add_feature_post_action (a_action: attached PROCEDURE [FEATURE_AS])
351 schmisam 95828 do
352     feature_post_actions.extend (a_action)
353     end
354    
355 evemerge 98312 add_feature_clause_pre_action (a_action: attached PROCEDURE [FEATURE_CLAUSE_AS])
356 schmisam 95828 do
357     feature_clause_pre_actions.extend (a_action)
358     end
359    
360 evemerge 98312 add_feature_clause_post_action (a_action: attached PROCEDURE [FEATURE_CLAUSE_AS])
361 schmisam 95828 do
362     feature_clause_post_actions.extend (a_action)
363     end
364    
365 evemerge 98312 add_id_pre_action (a_action: attached PROCEDURE [ID_AS])
366 schmisam 95828 do
367     id_pre_actions.extend (a_action)
368     end
369    
370 evemerge 98312 add_id_post_action (a_action: attached PROCEDURE [ID_AS])
371 schmisam 95828 do
372     id_post_actions.extend (a_action)
373     end
374    
375 evemerge 98312 add_if_pre_action (a_action: attached PROCEDURE [IF_AS])
376 schmisam 95828 do
377     if_pre_actions.extend (a_action)
378     end
379    
380 evemerge 98312 add_if_post_action (a_action: attached PROCEDURE [IF_AS])
381 schmisam 95828 do
382     if_post_actions.extend (a_action)
383     end
384    
385 evemerge 98312 add_inspect_pre_action (a_action: attached PROCEDURE [INSPECT_AS])
386 schmisam 95828 do
387     inspect_pre_actions.extend (a_action)
388     end
389    
390 evemerge 98312 add_inspect_post_action (a_action: attached PROCEDURE [INSPECT_AS])
391 schmisam 95828 do
392     inspect_post_actions.extend (a_action)
393     end
394    
395 evemerge 98312 add_instruction_call_pre_action (a_action: attached PROCEDURE [INSTR_CALL_AS])
396 schmisam 95828 do
397     instruction_call_pre_actions.extend (a_action)
398     end
399    
400 evemerge 98312 add_instruction_call_post_action (a_action: attached PROCEDURE [INSTR_CALL_AS])
401 schmisam 95828 do
402     instruction_call_post_actions.extend (a_action)
403     end
404    
405 evemerge 98312 add_loop_pre_action (a_action: attached PROCEDURE [LOOP_AS])
406 schmisam 95828 do
407     loop_pre_actions.extend (a_action)
408     end
409    
410 evemerge 98312 add_loop_post_action (a_action: attached PROCEDURE [LOOP_AS])
411 schmisam 95828 do
412     loop_post_actions.extend (a_action)
413     end
414    
415 evemerge 98312 add_nested_pre_action (a_action: attached PROCEDURE [NESTED_AS])
416 schmisam 95828 do
417     nested_pre_actions.extend (a_action)
418     end
419    
420 evemerge 98312 add_nested_post_action (a_action: attached PROCEDURE [NESTED_AS])
421 schmisam 95828 do
422     nested_post_actions.extend (a_action)
423     end
424    
425 evemerge 98312 add_object_test_pre_action (a_action: attached PROCEDURE [OBJECT_TEST_AS])
426 schmisam 95828 do
427     object_test_pre_actions.extend (a_action)
428     end
429    
430 evemerge 98312 add_object_test_post_action (a_action: attached PROCEDURE [OBJECT_TEST_AS])
431 schmisam 95828 do
432     object_test_post_actions.extend (a_action)
433     end
434    
435 evemerge 98312 add_once_pre_action (a_action: attached PROCEDURE [ONCE_AS])
436 schmisam 95828 do
437     once_pre_actions.extend (a_action)
438     end
439    
440 evemerge 98312 add_once_post_action (a_action: attached PROCEDURE [ONCE_AS])
441 schmisam 95828 do
442     once_post_actions.extend (a_action)
443     end
444    
445 evemerge 98312 add_paran_pre_action (a_action: attached PROCEDURE [PARAN_AS])
446 schmisam 95828 do
447     paran_pre_actions.extend (a_action)
448     end
449    
450 evemerge 98312 add_paran_post_action (a_action: attached PROCEDURE [PARAN_AS])
451 schmisam 95828 do
452     paran_post_actions.extend (a_action)
453     end
454    
455 evemerge 98312 add_routine_pre_action (a_action: attached PROCEDURE [ROUTINE_AS])
456 schmisam 95828 do
457     routine_pre_actions.extend (a_action)
458     end
459    
460 evemerge 98312 add_routine_post_action (a_action: attached PROCEDURE [ROUTINE_AS])
461 schmisam 95828 do
462     routine_post_actions.extend (a_action)
463     end
464    
465 evemerge 98312 add_unary_pre_action (a_action: attached PROCEDURE [ANY, UNARY_AS])
466 schmisam 95828 do
467     unary_pre_actions.extend (a_action)
468     end
469    
470 evemerge 98312 add_unary_post_action (a_action: attached PROCEDURE [ANY, UNARY_AS])
471 schmisam 95828 do
472     unary_post_actions.extend (a_action)
473     end
474    
475 evemerge 98312 add_un_not_pre_action (a_action: attached PROCEDURE [ANY, UN_NOT_AS]) do
476 schmisam 95828 un_not_pre_actions.extend (a_action)
477     end
478    
479 evemerge 98312 add_un_not_post_action (a_action: attached PROCEDURE [UN_NOT_AS])
480 schmisam 95828 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 schmisam 96890 bin_ne_pre_actions, bin_ne_post_actions: ACTION_SEQUENCE [TUPLE [BIN_NE_AS]]
525    
526 schmisam 95828 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 schmisam 96890 bin_ge_post_actions.call ([a_bin_ge])
635 schmisam 95828 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 schmisam 96890 bin_gt_post_actions.call ([a_bin_gt])
642 schmisam 95828 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 schmisam 96890 bin_le_post_actions.call ([a_bin_le])
649 schmisam 95828 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 schmisam 96890 bin_lt_post_actions.call ([a_bin_lt])
656 schmisam 95828 end
657    
658 schmisam 96890 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 schmisam 95828 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