%init: Idle;
%accept: End;


Idle         : { isPresent().return==-1 } -> WillDoFoo
             | { isPresent().return!=-1 } -> End
             | { ! RETURN(isPresent) } -> Idle ;

WillDoFoo 
             : { CALL(foo) } -> End;

End   
             : { !CALL(foo) } -> End;
