Вниз
Скачать: CL | DM;

Парсер PAS/DPR/DPK+-DFM   Найти похожие ветки 

← →
msts   (2002-12-06 10:33) [0]

Народ, может кто сталкивался с задачей анализа исходников Delphi?
Нужно получить списки используемых юнитов, связи между ними, где и какие используются классы, где они описаны и т.п.
Может компонент есть какой?, т.е. у которого можно спросить на какие юниты ссылается загруженный, какие в нем описаны классы, где они используютя еще.

ps: нужно для анализа исходников с целью их оптимизации, ну а файлов наберется ~18000 соответсвенно ручная обработка некатит


← →
Skier ©   (2002-12-06 10:38) [1]

>msts

> нужно для анализа исходников с целью их оптимизации

Ого! Да тебя после этого сразу в Borland возьмут работать. :))

По существу имею сказать следущее
В книге Марко Кэнту есть пример по построению иерархии классов
Delphi. Посмотри, может пригодиться...


← →
msts   (2002-12-06 10:54) [2]

Не, пока решается количесвенная задача а не качественная
Например в системе есть 5 юнитов которые проще было бы объеденить в один а как это узнать? только собрав статистику
или например система состоит и ядра, набора сервисов ну и прикладной части - задача определить какие функции нужно выделить в отдельный сервис (по частоте использования) соответсвенно есть набор юнитов которы желательно объеденить в один пакет опять же как это определить?
Еще со временем появилось дублирование функций/объектов - тоже нужен анализ.
Далее люди приходят - уходя - годы идут, щас даже трудно сказать на что система способна - никто не знает Ж)


← →
Игорь Шевченко ©   (2002-12-06 10:58) [3]

Я занимаюсь аналогичным поиском....К сожалению, безуспешным...
Мне нужно что-то вроде declared but never used на уровне всего проекта.
Взаимосвязь между unit"ами есть в GExperts
(www.gexperts.org)


← →
Skier ©   (2002-12-06 11:07) [4]

А механизмы определния недостижимого кода, неиспользуемых переменных, методов и т.д. из теории компиляторов не подойдут ?
(Это просто в качестве гипотезы...)


← →
DarkGreen ©   (2002-12-06 11:46) [5]

2 Игорь Шевченко ©
К сожелению GExpert есть только под 5 делфи, а вот под 6 нету :-(
Иль я не прав?


← →
MBo ©   (2002-12-06 11:56) [6]

DarkGreen
есть


← →
Игорь Шевченко ©   (2002-12-06 11:58) [7]

Даже под Delphi 7 есть


← →
msts   (2002-12-06 11:59) [8]

Это в будущем ща нужно просто выполнить ту же работу по парсингу текста что и дельфа - с учетом перекрытий пространств имен одного юнита другим и тому продобное
вот тока нету даже полного описания синтаксиса
например как часто используется конструкция

type

IMyInterface = interface
procedure P1;
procedure P2;
end;
TMyImplClass = class
procedure P1;
procedure P2;
end;
TMyClass = class(TInterfacedObject, IMyInterface)
FMyImplClass: TMyImplClass;
property MyImplClass: TMyImplClass read FMyImplClass implements IMyInterface;
procedure IMyInterface.P1 = MyP1;
procedure MyP1;

end;

а? вот и я тоже только один раз и то попробовал



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.014 c
7-86198
Dimich1978
2002-10-23 09:35
2002.12.26
Кто нибудь писал прогу для учета компов на предприятии!!!


14-86177
Separator
2002-12-06 11:10
2002.12.26
Поиск в массиве.


3-85826
volph7777
2002-12-05 11:29
2002.12.26
Кодировка и DBF


14-86104
AFAIR
2002-12-05 10:05
2002.12.26
Недел так эннадцать назад тут пробегала тема слабого человека...


4-86221
kostik78ua
2002-11-12 18:24
2002.12.26
GetModuleFileNameEx+Win95




   Наверх