[ Lit Window Library at SourceForge ] [ Lit Window Productions Homepage ] [ wxWidgets Tips&Tricks ] [ wxVisualSetup ]
Inheritance diagram for rule_base:


Public Member Functions | |
| virtual value_assign_base * | evaluate (const constraint_solver *) const =0 |
| Evaluate the rule and return a result object. | |
| void | execute_immediate (const constraint_solver *a_solver) const |
| Evaluate the rule and immediately assign the result to the target. | |
| virtual dependency_t | is_dependent_on (const const_accessor &, symbol_table_interface *) const =0 |
| virtual tstring | name () const |
| The programmer specified name of the rule. | |
| bool | operator!= (const accessor &a) const |
| bool | operator== (const accessor &a) const |
| Test if two rules update the same target. | |
| rule_base (const accessor &t) | |
| const accessor & | target () const |
| Get the target. | |
| virtual | ~rule_base () |
Mirror rules | |
Mirror rules are used for twoway rules.
If a<->b is a two way rule, b<-a is the mirror rule of a<-b and vice versa. When solving a rule set, evaluation of mirror rules will be suppressed when the rule itself is evaluated. If a<-b is evaluated and a changes, b<-a would be evaluated because it depends on a. But if b<-a is the mirror rule of a<-b, its evaluation will be suppressed. | |
| rule_base * | get_mirror () const |
| void | set_mirror (rule_base *r) |
Protected Attributes | |
| rule_base * | m_mirror |
| accessor | m_target |
|
|
|
|
|
|
|
|
This function evaluates the rule. Rules do not immediately assign the result. Instead they return a result object, which can later be used to assign the result to the target.
Implemented in rule_assign, and rule_expr. |
|
|
|
|
|
|
|
||||||||||||
|
Implemented in rule_assign, and rule_expr. |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Copyright 2004, Hajo Kirchhoff, Lit Window Productions