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

Diff of /branches/eth/eve/Src/framework/code_analysis/ca_code_analyzer.e

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 93963 by zurfluhs, Sun Jan 12 19:50:44 2014 UTC revision 93966 by zurfluhs, Mon Jan 13 09:23:09 2014 UTC
# Line 86  feature -- Analysis interface Line 86  feature -- Analysis interface
86                  local                  local
87                          l_rules_checker: CA_ALL_RULES_CHECKER                          l_rules_checker: CA_ALL_RULES_CHECKER
88                          l_task: CA_RULE_CHECKING_TASK                          l_task: CA_RULE_CHECKING_TASK
89                            l_rules_to_check: LINKED_LIST [CA_RULE]
90                  do                  do
91                          is_running := True                          is_running := True
92    
93                          create l_rules_checker.make                          create l_rules_checker.make
94                            create l_rules_to_check.make
95                          across rules as l_rules loop                          across rules as l_rules loop
96                                  l_rules.item.clear_violations                                  l_rules.item.clear_violations
97                                  if l_rules.item.is_enabled.value then -- Important: only add enabled rules.                                  if is_rule_checkable (l_rules.item) then
98                                          if system_wide_check or else (not l_rules.item.is_system_wide) then                                          l_rules_to_check.extend (l_rules.item)
99                                                          -- Do not add system wide rules if we check only parts of the system.                                                  -- Here we only prepare standard rules. The rule checking task will iterate again
100                                                  if attached {CA_STANDARD_RULE} l_rules.item as l_std_rule then                                                  -- through the rules and run the analysis on the enabled rules.
101                                            if attached {CA_STANDARD_RULE} l_rules.item as l_std_rule then
102                                                          l_std_rule.prepare_checking (l_rules_checker)                                                  l_std_rule.prepare_checking (l_rules_checker)
                                                                 -- TODO: prepare rules of other types?  
                                                 end  
103                                          end                                          end
104                                  end                                  end
105                          end                          end
106    
107                          create l_task.make (l_rules_checker, rules, classes_to_analyze, agent analysis_completed)                          create l_task.make (l_rules_checker, l_rules_to_check, classes_to_analyze, agent analysis_completed)
108                          rota.run_task (l_task)                          rota.run_task (l_task)
109                  end                  end
110    
111            is_rule_checkable (a_rule: CA_RULE): BOOLEAN
112                    do
113                            Result := a_rule.is_enabled.value
114                                                    and then (system_wide_check or else (not a_rule.is_system_wide))
115                                                    and then is_severity_enabled (a_rule.severity)
116                    end
117    
118          clear_classes_to_analyze          clear_classes_to_analyze
119                          -- Remove all classes that have been added to the list of classes                          -- Remove all classes that have been added to the list of classes
120                          -- to analyze.                          -- to analyze.
# Line 310  feature {NONE} -- Implementation Line 317  feature {NONE} -- Implementation
317                          end                          end
318                  end                  end
319    
320            is_severity_enabled (a_severity: CA_RULE_SEVERITY): BOOLEAN
321                    do
322                            Result := (attached {CA_HINT} a_severity and settings.are_hints_enabled.value)
323                                    or else (attached {CA_SUGGESTION} a_severity and settings.are_suggestions_enabled.value)
324                                    or else (attached {CA_WARNING} a_severity and settings.are_warnings_enabled.value)
325                                    or else (attached {CA_ERROR} a_severity and settings.are_errors_enabled.value)
326                    end
327    
328    
329  feature {NONE} -- Class-wide Options (From Indexing Clauses)  feature {NONE} -- Class-wide Options (From Indexing Clauses)
330    

Legend:
Removed from v.93963  
changed lines
  Added in v.93966

  ViewVC Help
Powered by ViewVC 1.1.23