Снегопат

Обсуждение Снегопата
Текущее время: 23 ноя 2024, 15:42

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 195 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10, 11 ... 20  След.
Автор Сообщение
СообщениеДобавлено: 19 апр 2012, 18:26 
Не в сети

Зарегистрирован: 13 фев 2012, 21:15
Сообщения: 190
В ИР готового regexp парсера модулей нет, но он есть в другой моей конфе. Обкатанный на сотнях модулей. Использует ИР. По-быстрому выдрал. Интерфейс пользователя почти не делал.

Кстати здесь почему то нельзя upoload'ить файлы с расширением EPF. Надо бы поправить.


Вложения:
ПарсерМодуля1С.rar [6.41 КБ]
Скачиваний: 405
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 19 апр 2012, 23:09 
Не в сети
Администратор
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:04
Сообщения: 2052
Добавил erf и epf к разрешенным вложениям.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 апр 2012, 15:12 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
Ошибку падения скрипта исправил.
Пока для таких "нештатных" случаев размещения определения процедур/функций скрипт не выдает имя процедуры, для остальных, более штатных, выдает.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 апр 2012, 17:31 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
artbear писал(а):
sosnae писал(а):
Код:
Процедура Проверки ( Перем1,
   Перем2, Перем3)
 КонецПроцедуры


Код:
Процедура
         Проверки ( Перем1,Перем2, Перем3)
 КонецПроцедуры


(kuntashov) Саша, выложил соответствующие тесты для SyntaxAnalysis
Пока времени исправлять эту библиотеку нету :(


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 апр 2012, 23:01 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:53
Сообщения: 448
Откуда: Саратов
Артур, за тесты спасибо, посмотрю. Но конкретно для extSearch я позже переделаю без SyntaxAnalysis, т.к. с точки зрения производительности не очень рационально дважды весь модуль пропарсивать - сначала анализируя его для получения списка функций/процедур, а потом выполняя поиск.

Сделаю анализ заголовков и окончаний процедуры в процессе выполнения построчного поиска. Вообще планов по скрипту много, но времени не очень последнее время :(

_________________
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 апр 2012, 08:24 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
kuntashov писал(а):
Но конкретно для extSearch я позже переделаю без SyntaxAnalysis, т.к. с точки зрения производительности не очень рационально дважды весь модуль пропарсивать - сначала анализируя его для получения списка функций/процедур, а потом выполняя поиск.

Сделаю анализ заголовков и окончаний процедуры в процессе выполнения построчного поиска. Вообще планов по скрипту много, но времени не очень последнее время :(

Про производительность согласен, но помним фразу "Не нужно преждевременной оптимизации" :)
ИМХО не нужно дублировать код разбора в SyntaxAnalysis и еще где-то, если решаются одинаковые задачи.
Для текущих задач двойной разбор модуля вполне шустро отрабатывает.
Проблемы со скоростью могут быть при реализации поиска по модулям конфигурации, но пока эта задача только в планах у тебя, верно?
ЗЫ хотя если реализуешь код разбора на методы в скрипте поиска, потом наверняка несложно будет его портировать в библиотеку SyntaxAnalysis


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 22 апр 2012, 16:56 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:53
Сообщения: 448
Откуда: Саратов
Доработал механизм идентификации процедур/функций, в которых найдено совпадение:

* как писал выше, отвязался (возможно, только временно) от SyntaxAnalysis в пользу анализа строк на начало/конец метода по мере поиска;
* вместе с этим решил проблему с идентификацией методов в ситуациях, когда часть объявления параметров перенесена на новую строку (решена проблема только для частной ситуации поиска, в SyntaxAnalasis проблема пока не решена, т.к. там решение требуется полноценное):
Код:
Процедура ИмяПроцедуры (Парам1, Парам2,
    Парам3, Парам 4)
    //...
КонецПроцедуры

* Тип метода (процедура/функция) отображается в виде соответствующих пиктограмм.
Вот как это выглядит теперь:
Вложение:
extSearch-methods.jpg
extSearch-methods.jpg [ 73.58 КБ | Просмотров: 9378 ]


Экспериментально добавил возможность группировки результатов поиска по процедурам/функциям:
Вложение:
extSearch-groupings.jpg
extSearch-groupings.jpg [ 57.15 КБ | Просмотров: 9378 ]

Включается кнопкой на командной панели. Режим дерево/список переключается налету, выбранный режим сохраняется между сеансами.

P.S.
Проблема идентификации метода в случае, когда ключевое слово Функция/Процедура и ИмяМетода - на разных строках не решена и честно говоря, мне не хочется решать ее на регулярках. К счастью, такие случаи объявления встречаются редко (я вообще не помню, чтобы мне встречалось), поэтому серьезных проблем отсутствие обработки такого случая не должно вызывать.

_________________
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 апр 2012, 07:36 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
Отличные исправления.
но есть небольшая плавающая ошибка
иногда вылетает исключение
Строка 242, Позиция 8
Значение индекса выходит за границы диапазона


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 23 апр 2012, 07:46 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:53
Сообщения: 448
Откуда: Саратов
Да, не учел в одном месте, что теперь два режима - дерево и список. Исправил, обновись.

_________________
С уважением,
Александр Кунташов
Канал про 1С в Телеграме: @kuntashov_devnotes


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 25 апр 2012, 08:03 
Не в сети
Аватара пользователя

Зарегистрирован: 24 авг 2011, 15:36
Сообщения: 1085
Есть предложение - колонка, что именно нашли (третья колонка), не всегда нужна.
ИМХО она нужна в основном только для регулярных выражений.
или можно колонку с именем метода поставить перед ней.
Понятно объяснил?


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 195 ]  На страницу Пред.  1 ... 5, 6, 7, 8, 9, 10, 11 ... 20  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: Google [Bot] и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB