示例#1
0
        public override NLGElement BuildElement()
        {
            PartOfSpeechBuilder[] orderedPartsOfSpeech = GetElementsOfTypeInSubtree <PartOfSpeechBuilder>()
                                                         .OrderBy(child => child)
                                                         .ToArray();
            StringBuilder stringValue = new StringBuilder();

            for (int childIndex = 0; childIndex < orderedPartsOfSpeech.Length - 1; childIndex++)
            {
                AddPartOfSpeech(orderedPartsOfSpeech[childIndex]);
                stringValue.Append(" ");
            }
            AddPartOfSpeech(orderedPartsOfSpeech.Last());
            NominalModifier.val = stringValue.ToString();
            return(NominalModifier);

            void AddPartOfSpeech(PartOfSpeechBuilder partOfSpeech)
            {
                if (partOfSpeech is WordElementBuilder)
                {
                    WordElementBuilder eachWord = (WordElementBuilder)partOfSpeech;
                    stringValue.Append(eachWord.BuildWord().Base);
                }
            }
        }