ROSE  0.9.6a
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
rule.h
Go to the documentation of this file.
1 
2 #ifndef BDWY_RULE_H
3 #define BDWY_RULE_H
4 
5 typedef std::list< ruleAnn * > rule_list;
6 typedef rule_list::iterator rule_list_p;
7 typedef rule_list::const_iterator rule_list_cp;
8 
9 
14 class ruleAnn : public Ann
15 {
16 private:
17 
23 
29 
36 
37  public:
38 
43  ruleAnn(exprAnn * condition, exprann_list * effects, int line);
44 
47  inline bool has_condition() const { return _condition != 0; }
48 
51  inline exprAnn * condition() const { return _condition; }
52 
58 #ifdef __PROCLOCATION
59  void test(procLocation * where,
60  propertyAnalyzer * property_analyzer);
61 #endif
62 
65  bool is_condition_true() const { return _is_condition_true; }
66 
72 #ifdef __PROCLOCATION
73  void compute_next(procLocation * where);
74 #endif
75 
82 #ifdef __PROCLOCATION
83  void apply_next(procLocation * where,
84  propertyAnalyzer * property_analyzer,
85  memoryblock_set & changes);
86 #endif
87 
90  void lookup(propertyAnn * default_property,
91  procedureAnn * procedure,
92  Annotations * annotations);
93 
94 };
95 
96 #endif /* BDWY_RULE_H */