public Модуль ДобавитьМетод(СвойстваМетодов Метод) { if (СловарьМетодов.ContainsKey(Метод.ИмяМетода)) { ДобавитьПроблему("Метод " + Метод.ИмяМетода + " описан дважды", Метод.Index); } else { СловарьМетодов.Add(Метод.ИмяМетода, Метод); } return(this); }
/// <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); ДобавитьМетод(СвойствоМетода); } }