// **************************************************************************
//
//    eses                   eses
//   eses                     eses
//  eses    eseses  esesese    eses   Embedded Systems Group
//  ese    ese  ese ese         ese
//  ese    eseseses eseseses    ese   Department of Computer Science
//  eses   eses          ese   eses
//   eses   eseses  eseseses  eses    University of Kaiserslautern
//    eses                   eses
//
// **************************************************************************
//
// The example shows the difference of cont(z) and z inside of a flow statement
// 
// **************************************************************************




module ContFlow()
{
    hybrid real x;
    hybrid real y;
    hybrid real z;
  
    loop{
        flow{
            drv(x) <- cont(y);
            y <- cont(z)+1;
            drv(z) <- 1.0;
        }until(cont(x) >= 3);
	//}until(cont(x) >= 3|cont(y) >=2);
        next(x) = 0.0;
        next(y) = 0.0;
        next(z) = 0.0;
        flow{}until(true);
        }
} drivenby {
    for(i = 0..3)
    pause;
}