40 |
if l_rules.item.is_enabled then -- important: only add enabled rules |
if l_rules.item.is_enabled then -- important: only add enabled rules |
41 |
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 |
42 |
-- 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 |
43 |
l_rules.item.prepare_checking (l_rules_checker) |
if attached {CA_STANDARD_RULE} l_rules.item as l_std_rule then |
44 |
|
l_std_rule.prepare_checking (l_rules_checker) |
45 |
|
elseif attached {CA_BACKWARD_ITERATION_RULE} l_rules.item as l_back_rule then |
46 |
|
-- TODO |
47 |
|
end |
48 |
end |
end |
49 |
end |
end |
50 |
end |
end |
54 |
-- TODO: more elegant and performant solution? |
-- TODO: more elegant and performant solution? |
55 |
across rules as l_rules loop |
across rules as l_rules loop |
56 |
l_rules.item.set_checking_class (l_classes.item) |
l_rules.item.set_checking_class (l_classes.item) |
57 |
|
-- If rule is non-standard then it will not be checked by l_rules_checker. |
58 |
|
-- We will have the rule check the current class here: |
59 |
|
if attached {CA_BACKWARD_ITERATION_RULE} l_rules.item as l_back_rule then |
60 |
|
l_back_rule.process_class_as (l_classes.item.ast) |
61 |
|
end |
62 |
end |
end |
63 |
|
|
64 |
l_rules_checker.run_on_class (l_classes.item) |
l_rules_checker.run_on_class (l_classes.item) |