protected override string ToString(string constructName, HashSet <CFGBlockLogicalConstruct> printedBlocks, LogicalFlowBuilderContext context)
        {
            StringBuilder sb = new StringBuilder();

            sb.AppendLine("ConditionLogicalConstruct");
            sb.AppendLine("{");
            sb.Append(string.Format("\t{0}: ", NodeILOffset(context, this.FirstBlock)));
            sb.AppendLine(ConditionExpression.ToCodeString());
            sb.AppendLine(string.Format("\tTrueSuccessorBlock: {0}", NodeILOffset(context, TrueCFGSuccessor)));
            sb.AppendLine(string.Format("\tFalseSuccessorBlock: {0}", NodeILOffset(context, FalseCFGSuccessor)));

            string followNodeString = string.Format("\tFollowNode: {0}", NodeILOffset(context, CFGFollowNode));

            sb.AppendLine(followNodeString);
            sb.AppendLine("}");
            printedBlocks.UnionWith(this.CFGBlocks);
            return(sb.ToString());
        }