/// <summary>
        /// Extracts the first innermost atomic statement inside a given statement.
        /// </summary>
        /// <param name="stmt"></param>
        /// <returns></returns>
        public static Statement GetInnermostAtomicStatement(this Statement stmt)
        {
            InnermostAtomicStatementExtractor ase = new InnermostAtomicStatementExtractor();

            stmt.Accept(ase);
            return(ase.Result);
        }
 /// <summary>
 /// Extracts the first innermost atomic statement inside a given statement.
 /// </summary>
 /// <param name="stmt"></param>
 /// <returns></returns>
 public static Statement GetInnermostAtomicStatement(this Statement stmt)
 {
     InnermostAtomicStatementExtractor ase = new InnermostAtomicStatementExtractor();
     stmt.Accept(ase);
     return ase.Result;
 }