Exemplo n.º 1
0
        public Предложение  азобратьТекст(string Текст)
        {
            var    предложение       = new Предложение();
            object заполняемыйШаблон = null;

            for (int i = 0; i < Текст.Length; i++)
            {
                var символ = Текст[i];
                if (символ >= 'а' && символ <= 'я')
                {
                    if (заполняемыйШаблон == null)
                    {
                        заполняемыйШаблон = new Слово();
                        ((Слово)заполняемыйШаблон).Список.Add(символ);
                    }
                    else if (заполняемыйШаблон is Слово)
                    {
                        ((Слово)заполняемыйШаблон).Список.Add(символ);
                    }
                    else  //заполняемыйшаблон не Слово, закончилось заполнение пробела
                    {
                        предложение.СписокОбъектов.Add(заполняемыйШаблон);

                        заполняемыйШаблон = new Слово();
                        ((Слово)заполняемыйШаблон).Список.Add(символ);
                    }
                }
                else if (символ == ' ')
                {
                    if (заполняемыйШаблон == null)
                    {
                        заполняемыйШаблон = new Пробел();
                        ((Пробел)заполняемыйШаблон).Список.Add(символ);
                    }
                    else
                    {
                        if (заполняемыйШаблон is Пробел) //продолжить заполнение пробела
                        {
                            ((Пробел)заполняемыйШаблон).Список.Add(символ);
                        }
                        else  //заполняемый шаблон не пробел,
                        {
                            предложение.СписокОбъектов.Add(заполняемыйШаблон);
                            заполняемыйШаблон = new Слово();
                            ((Слово)заполняемыйШаблон).Список.Add(символ);
                        }
                    }
                }
                else //другие символы пропуск
                {
                    заполняемыйШаблон = null;
                }
            }
            return(предложение);
        }
Exemplo n.º 2
0
        public override bool ПопробоватьДобавить(object объект)
        {
            if (объект == null)
            {
                if (Текущий == null)
                {
                    return(false);
                }
                ИсходящийШаблон.ПопробоватьДобавить(Текущий);
                Текущий = null;
                return(true);
            }

            var ассСимвол = (Символ2)объект;

            ассСимвол.АссоциированныеОбъекты.Add(this);

            if (Текущий == null)
            {
                Текущий = new Слово();
            }
            Текущий.Список.Add(объект);
            return(true);
        }