OmniXaml.Parsers.Parser.InstructionParser.ParseNonEmptyElement C# (CSharp) Method

ParseNonEmptyElement() private method

private ParseNonEmptyElement ( ) : IEnumerable
return IEnumerable
        private IEnumerable<Instruction> ParseNonEmptyElement()
        {
            yield return Inject.StartOfObject(instructionStream.Current.XamlType);
            var parentType = instructionStream.Current.XamlType;

            if (parentType.NeedsConstructionParameters)
            {
                foreach (var instruction in InjectNodesForTypeThatRequiresInitialization()) { yield return instruction; }
            }
            else
            {
                SetNextInstruction();

                foreach (var instruction in ParseMembersOfObject()) { yield return instruction; }

                if (parentType.IsCollection)
                {
                    foreach (var instruction in ParseItemsOfCollection()) { yield return instruction; }
                }
                else
                {
                    foreach (var instruction in ParseContentPropertyIfAny(parentType)) { yield return instruction; }
                }

                SkipTextNodes();

                foreach (var instruction in ParseNestedProperties(parentType)) { yield return instruction; }
            }

            yield return Inject.EndOfObject();
            ReadEndTag();
        }