//////////////////////////////////////////////////////////////////////////////// interface TestBool { in void evt(); behaviour { enum States { State1, State2 }; bool b1 = true; bool b2 = true; bool b3 = true; States state1 = States.State1; States state2 = States.State2; [state1.State1] { on evt: { // basic boolean operators: b1 = b1 || b2; b2 = b1 && b2; b3 = ! b1; b1 = true; b2 = false; b3 = state1 == States.State2; b1 = state2 != States.State2; b2 = (b1 && b2); b3 = state1.State2; // assiciativity: b2 = b1 || b2 || b3; b3 = b1 && b2 && b3; b1 = !!b2; // operator precedence: b1 = ! b2 && b3; b2 = ! b2 || b3; b3 = ! (state1 == States.State2); b1 = b2 && b3 || b1; b2 = b1 || b2 && b3; if (state1.State2) { b1 = !b1; } } } [state2.State1 && b1] { on evt: {} } } } component testBoolean { provides TestBool i; behaviour { bool b = false; [true] on i.evt(): {} } }