powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
12 сообщений из 62, страница 3 из 3
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826708
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
makhaonпосмотрел. хорошо, как для фришного. с хотелками есть смысл обращаться?
Есть смысл. Что смогу - то сделаю :)
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826761
x1ca4064
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AKdominator2) в каждой строке проверяемого файла ищется первое вхождение ":=".
3) если нашлось, и строка заканчивается на ";", тогда берется подстрока слева от...


Т.е. Вы не строите синтаксическое дерево?
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826806
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AKdominator,

несколько мелких для начала:

хоткей (например - return) для перехода из отчета к месту бага, сейчас только даббл-клик, неудобно
какая-то кнопка + хоткей с открытием текущего исходника и строки прямо в delphi (надо поискать как, это как-то точно можно сделать, пеганза и эврикалог это умеют делать).
возможность редактирования в 'соотвествующем коде' есть, но сохранения нет, стоит дописать

по собственно детекции.

баг:
Код: pascal
1.
property IndentElse: boolean read fbIndentElse write fbIndentElse;


срабатывает правило для 'Else;' хотя не должно

было бы хорошо обнаруживать массивы, записи и строки, передаваемые без модификаторов const/var (довольно важная функция для оптимизации, многие исходники страдают)

позже еще допишу. вообще - стоит смотреть пеганзу или FixInsight, многое уже там сделано. но у тебя есть некоторые новые фишки, смотрю.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826914
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще.
Баг, ложное срабатывание:

Код: pascal
1.
2.
    destructor Destroy;
      override;



Еще удобнее было бы не жать 'Enter' (retrun), а просто при переходе вверх-вниз по списку найденных записей сразу синхронизировать место в исходниках.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39826924
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На десятке без русской локали зависает при запуске. Загрузка процессора под 100%. После удаления словаря стартует нормально.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39827842
AKdominator
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
x1ca4064Т.е. Вы не строите синтаксическое дерево?
Не строю.

makhaonAKdominator,
баг:
Код: pascal
1.
property IndentElse: boolean read fbIndentElse write fbIndentElse;


срабатывает правило для 'Else;' хотя не должно

Исправил.

makhaonЕще.
Баг, ложное срабатывание:

Код: pascal
1.
2.
    destructor Destroy;
      override;


Исправил.

makhaonЕще удобнее было бы не жать 'Enter' (retrun), а просто при переходе вверх-вниз по списку найденных записей сразу синхронизировать место в исходниках.
Сделал.

Kazantsev AlexeyНа десятке без русской локали зависает при запуске. Загрузка процессора под 100%. После удаления словаря стартует нормально.
Поменял кодировку словаря на Unicode, может быть поможет. Мне повторить зависание не удалось.

Остальное с ходу не получилось сделать.

Новую версию выложил здесь
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39828057
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AKdominatorПоменял кодировку словаря на Unicode, может быть поможет.
Помогло.

Ложные детекты:

Часть case
Код: pascal
1.
2.
    'A' .. 'Z' : Addend := Ord(C) - (Ord('A') - 10);
    'a' .. 'z' : Addend := Ord(C) - (Ord('a') - 10);


- одинаковые строки

Часть константного массива
Код: pascal
1.
2.
   2, // $(var)
   2, // ${var}


- одинаковые строки

Начало декларации двухмерного константного массива
Код: pascal
1.
2.
3.
4.
     Multipliers : Array[TScale, TMagnitude] Of UInt64 =
      (
       (
        0,


- одинаковые строки (на скобки)

Вызов метода
Код: pascal
1.
FInstance.SetLength(0);


- предлагается заменить на "Arr := NIL;"

Декларация внешней функции
Код: pascal
1.
 Function SecRandomCopyBytes(rnd : SecRandomRef; count : LongWord; bytes : PByte) : Integer; CDecl; External libSecurity Name _PU + 'SecRandomCopyBytes';


- неиспользуемая переменная "rnd"

Декларация локального типа в процедуре
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Class Procedure...
 Type

  TSysPageFileInfo = Record

   NextEntryOffset : Cardinal;
   CurrentSize     : Cardinal;
   TotalUsed       : Cardinal;
   PeakUsed        : Cardinal;

   FileName        : Record

                      Length    : Word;
                      MaxLength : Word;
                      Buffer    : PWideChar;

                     End;

  End;


- неиспользуемые переменные (перечислено несколько полей)

Декларация переменной-записи
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Var
  InfoEx : Record

            dwLength                : LongWord;
            dwMemoryLoad            : LongWord;
            ullTotalPhys            : UInt64;
            ullAvailPhys            : UInt64;
            ullTotalPageFile        : UInt64;
            ullAvailPageFile        : UInt64;
            ullTotalVirtual         : UInt64;
            ullAvailVirtual         : UInt64;
            ullAvailExtendedVirtual : UInt64;

           End;


- неиспользуемые переменные (перечислено несколько полей)

Оператор выбора
Код: pascal
1.
2.
3.
4.
   Case AOperation Of

    doCopy  : _InitializeByCopy;
    doShare : _InitializeByShare;


- неиспользуемая переменная "doCopy" и "doShare"

Оператор выбора
Код: pascal
1.
2.
3.
4.
   Case MarkerPtr[0] Of

    '+' : _ParseOpenedSequence;
    '-' : _ParseClosedSequence;


- неиспользуемая переменная "'+'" и "'-'"

Реагирует на конструкторы типов если имя типа не начинается с T, даже на декларацию.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39828394
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря, не понимаю, как можно делать подобные тулзни не используя AST...
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39828401
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger,

+1. Хотя, тому же FixInsight AST не особо помогает, там фолсов тоже куча, не таких глупых, но анализ там примитивный.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39828466
white_nigger
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kazantsev AlexeyХотя, тому же FixInsight AST не особо помогает, там фолсов тоже куча, не таких глупых, но анализ там примитивный.Я пользовался и пеганзой и фиксинсайтом: что-то находили, на чём-то лажали. К слову сказать, оба автора относительно оперативно фиксили те баги что я им присылал. Правда уже давно не слежу за развитием этих продуктов и не знаю как сейчас обстоят дела.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39828502
Kazantsev Alexey
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
white_nigger,

Я Роме писал о фолсах на вложенных вызовах конструкторов, тут на форуме. Потом ещё раз попробовал его анализатор, когда он сделал детект вызовов инлайновых методов расположеных выше тела метода (что не даст компилятору возможность сделать подстановку), фолсы на конструкторах так и остались плюс добавились фолсы на детекте вызовов инлайновых методов. Пеганзу тоже пробовал, но она мне показалась слишком "шумной", возбуждается по всяким пустякам.
...
Рейтинг: 0 / 0
Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
    #39965806
mkr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AKdominatorНовую версию выложил здесь

попробовал, интересное решение, понаходилось парочка "ляпов".
на мой взгляд не хватает копирования имени модуля из отчёта.

новых версий не было?
...
Рейтинг: 0 / 0
12 сообщений из 62, страница 3 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Peganza Pascal analyzer, SockSoftware CodeHealer: ищу аналоги и продавцов в России
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]