/// <summary>
 /// Analyze Block statement
 /// </summary>
 /// <param name="bs"></param>
 private void AnalyzeBlockStmt(BlockStatement bs)
 {
     if (bs is CatchStatement)
     {
     }
     else if (bs is ConditionBlockStatement)
     {
         ConditionBlockStatement cbs = (ConditionBlockStatement)bs;
         var exps = cbs.GetExpressions();
         foreach (var st in exps)
         {
             UpdateByExpression(st);
         }
     }
     else if (bs is LockStatement)
     {
     }
     else if (bs is TryStatement)
     {
     }
     else if (bs is NamespaceDefinition)
     {
     }
     else if (bs is UsingBlockStatement)
     {
     }
 }
 private static void TestEquality(ConditionBlockStatement expected, ConditionBlockStatement actual, string propertyName)
 {
     try {
         ExpressionsAreEqual(expected.Condition, actual.Condition, "Condition");
     } catch (DataAssertionException e) {
         e.Add(propertyName);
         throw e;
     }
     TestEquality((BlockStatement)expected, (BlockStatement)actual, propertyName);
 }