/[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 93177 by zurfluhs, Mon Oct 28 22:16:38 2013 UTC revision 93216 by zurfluhs, Wed Nov 6 16:55:32 2013 UTC
# Line 9  class Line 9  class
9    
10  inherit {NONE}  inherit {NONE}
11          SHARED_EIFFEL_PROJECT          SHARED_EIFFEL_PROJECT
12            CA_SHARED_NAMES
13    
14  create  create
15          make          make
# Line 23  feature {NONE} -- Initialization Line 24  feature {NONE} -- Initialization
24                          -- Adding example rules                          -- Adding example rules
25                          rules.extend (create {CA_SELF_ASSIGNMENT_RULE}.make)                          rules.extend (create {CA_SELF_ASSIGNMENT_RULE}.make)
26                          rules.extend (create {CA_UNUSED_ARGUMENT_RULE}.make)                          rules.extend (create {CA_UNUSED_ARGUMENT_RULE}.make)
27                            rules.extend (create {CA_NPATH_RULE}.make)
28                            rules.extend (create {CA_EMPTY_IF_RULE}.make)
29    
30                          create classes_to_analyze.make                          create classes_to_analyze.make
31                          create rule_violations.make (100)                          create rule_violations.make (100)
# Line 39  feature -- Analysis interface Line 42  feature -- Analysis interface
42                                  if l_rules.item.is_enabled then -- important: only add enabled rules                                  if l_rules.item.is_enabled then -- important: only add enabled rules
43                                          if system_wide_check or else (not l_rules.item.is_system_wide) then                                          if system_wide_check or else (not l_rules.item.is_system_wide) then
44                                                  -- do not add system wide rules if we check only parts of the system                                                  -- do not add system wide rules if we check only parts of the system
45                                                  l_rules.item.prepare_checking (l_rules_checker)                                                  if attached {CA_STANDARD_RULE} l_rules.item as l_std_rule then
46                                                            l_std_rule.prepare_checking (l_rules_checker)
47                                                    elseif attached {CA_BACKWARD_ITERATION_RULE} l_rules.item as l_back_rule then
48                                                            -- TODO
49                                                    end
50                                          end                                          end
51                                  end                                  end
52                          end                          end
# Line 49  feature -- Analysis interface Line 56  feature -- Analysis interface
56                                  -- TODO: more elegant and performant solution?                                  -- TODO: more elegant and performant solution?
57                                  across rules as l_rules loop                                  across rules as l_rules loop
58                                          l_rules.item.set_checking_class (l_classes.item)                                          l_rules.item.set_checking_class (l_classes.item)
59                                            -- If rule is non-standard then it will not be checked by l_rules_checker.
60                                            -- We will have the rule check the current class here:
61                                            if attached {CA_BACKWARD_ITERATION_RULE} l_rules.item as l_back_rule then
62                                                    l_back_rule.process_class_as (l_classes.item.ast)
63                                            end
64                                  end                                  end
65    
66                                  l_rules_checker.run_on_class (l_classes.item)                                  l_rules_checker.run_on_class (l_classes.item)
# Line 141  feature -- Analysis interface Line 153  feature -- Analysis interface
153                          if a_class.is_compiled then                          if a_class.is_compiled then
154                                  l_class_c := a_class.compiled_class                                  l_class_c := a_class.compiled_class
155                                  check l_class_c /= Void end                                  check l_class_c /= Void end
                                 print ("Analyzing class " + a_class.name + "...%N")  
156                                  classes_to_analyze.extend (l_class_c)                                  classes_to_analyze.extend (l_class_c)
157                          else                          else
158                                  print ("Class " + a_class.name + " not compiled (skipped).%N")                                  print ("Class " + a_class.name + " not compiled (skipped).%N")

Legend:
Removed from v.93177  
changed lines
  Added in v.93216

  ViewVC Help
Powered by ViewVC 1.1.23