start_section start1 : Time : clock := 0; end section; election_section elect1 : return max_to_index(tasks.priority); end section; automaton_section ea1_automaton : Wait : initial_state; Run : state; transition Wait ==> [ , , Call_Ea1?] ==> Run; transition Run ==> [ , , elect1!] ==> Wait; end section; automaton_section ea2_automaton : Wait : initial_state; Run : state; transition Wait ==> [ , , Call_Ea2?] ==> Run; transition Run ==> [ , , elect1!] ==> Wait; end section; priority_section debug_p1 : put(Time); put("go to ea1"); end section; priority_section debug_p2 : put(Time); put("go to ea2"); end section; automaton_section auto8_automaton : Run1 : initial_state; Run2 : state; Run3 : state; Run4 : state; transition Run1 ==> [ (Time mod 2) = 0, , debug_p1!] ==> Run2; transition Run2 ==> [ , , Call_Ea1!] ==> Run3; transition Run3 ==> [ (Time mod 2) = 0, , debug_p2!] ==> Run4; transition Run4 ==> [ , , Call_Ea2!] ==> Run1; end section;