public override void Serialize(IntermediateFormatWriter writer)
        {
            base.Serialize(writer);
            writer.RegisterDeclaration(m_Declaration);
            while (writer.NextMember())
            {
                switch (writer.CurrentMember.MemberName)
                {
                case MemberName.ID:
                    Global.Tracer.Assert(m_memberDef != null, "(null != m_memberDef)");
                    writer.WriteGlobalReference(m_memberDef);
                    break;

                case MemberName.MemberInstanceIndexWithinScopeLevel:
                    writer.Write7BitEncodedInt(m_memberInstanceIndexWithinScopeLevel);
                    break;

                case MemberName.Children:
                    writer.Write(m_children);
                    break;

                case MemberName.Cells2:
                    writer.Write(m_cells);
                    break;

                case MemberName.SerializableVariables:
                    writer.WriteSerializableArray(m_variables);
                    break;

                case MemberName.RecursiveLevel:
                    writer.Write7BitEncodedInt(m_recursiveLevel);
                    break;

                case MemberName.GroupExpressionValues:
                    writer.Write(m_groupExprValues);
                    break;

                case MemberName.ParentInstanceIndex:
                    writer.Write(m_parentInstanceIndex);
                    break;

                case MemberName.HasRecursiveChildren:
                    writer.Write(m_hasRecursiveChildren);
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }
        public override void Serialize(IntermediateFormatWriter writer)
        {
            base.Serialize(writer);
            writer.RegisterDeclaration(m_Declaration);
            while (writer.NextMember())
            {
                switch (writer.CurrentMember.MemberName)
                {
                case MemberName.ID:
                    Global.Tracer.Assert(m_dataRegionDef != null, "(null != m_dataRegionDef)");
                    writer.WriteGlobalReference(m_dataRegionDef);
                    break;

                case MemberName.DataSetIndexInCollection:
                    writer.Write7BitEncodedInt(m_dataSetIndexInCollection);
                    break;

                case MemberName.RowMembers:
                    writer.Write(m_rowMembers);
                    break;

                case MemberName.ColumnMembers:
                    writer.Write(m_columnMembers);
                    break;

                case MemberName.Cells2:
                    writer.Write(m_cells);
                    break;

                default:
                    Global.Tracer.Assert(condition: false);
                    break;
                }
            }
        }