generierte innere abstrakte Switch-Klasse
Formulierung:
ursprüngliche Constraint-Expression:
((Z or N) and (SCHREIB or LESE))
//Spezialisierung (X)OR durch bereits vorhandene Prädikate 4 Fälle
Switch( "ZentraleXorRegioAndSchreibXorLese" ,
(Z and SCHREIB) , // ( Z and not(N)) and ( SCHREIB and not(LESE))
(Z and LESE) , // ( Z and not(N)) and (not(SCHREIB) and LESE )
(N and SCHREIB) , // (not(Z) and N ) and ( SCHREIB and not(LESE))
(N and LESE) ) // (not(Z) and N ) and (not(SCHREIB) and LESE )
Überprüfung, ob die erfüllten Sub-Expressions
gültige Sub-Expressions der ursprünglichen
Expression sind
Ausprägungs-Mengen müssen disjunkt (nicht überlappend)
sein, sonst wird der zufällig zuerst generierte
Zweig durchlaufen (Fehler).
Möglichkeiten:
Code-Generator kennt sich ausschliessende
Prädikate (Excludes)
sowie
NOT (ein Prädikat ja vs. nein)