Exemplo n.º 1
0
 public Модуль ДобавитьМетод(СвойстваМетодов Метод)
 {
     if (СловарьМетодов.ContainsKey(Метод.ИмяМетода))
     {
         ДобавитьПроблему("Метод " + Метод.ИмяМетода + " описан дважды", Метод.Index);
     }
     else
     {
         СловарьМетодов.Add(Метод.ИмяМетода, Метод);
     }
     return(this);
 }
Exemplo n.º 2
0
        /// <summary>
        /// Метод производит поиск всех всех функции И процедур.
        /// отмечая их свойства: с запросом и стек вызовов
        /// </summary>
        /// <param name="МодульОбъекта">Модуль объекта.</param>
        private void НайтиВсеФункцииИПроцедуры()
        {
            var             ПоискФункций = new Regex(@"^(?!\/\/)[^\.\/]*?(procedur|functio|Процедур|Функци)[enая][\s]*?([А-Яа-яa-z0-9_]*?)[\s]?\(([\S\s]*?)\)[\s]*?(экспорт|export)?([\S\s]*?)(Конец|End)\1[enыи]", RegexOptions.IgnoreCase | RegexOptions.Multiline);
            MatchCollection Найдены      = ПоискФункций.Matches(Текст);

            foreach (Match Функция in Найдены)
            {
                СвойстваМетодов СвойствоМетода = new СвойстваМетодов(Функция);
                СвойствоМетода.НомерСтроки = ПолучитьНомерСтрокиПоИндексу(Функция.Index);
                ДобавитьМетод(СвойствоМетода);
            }
        }