Здравствуйте, beroal, Вы писали:
B>Здравствуйте, damiryaka, Вы писали: D>>Уважаемые! как вы думаете не изобрёл ли я велосипед?: D>>написал небольшую программку , D>>которая, анализируя текстовый файл (исходник на языке С ), строит дерево, в котором потом можно сворачивать логические (операторные и не только) блоки исходника, чтобы они не мешались при дальнейшем анализе. B>здесь
обсуждалось похожее. Называется ProgramTree. скриншоты.
А что-нить бесплатное найти бы. вот это было бы круто.
запустил Program Tree.
потом попытался открыть Си-шный исходник и тут меня ждал Exception. какое разочарование!
ну ничего! потом выяснилось, что это Version 1.0 Demo Trial.
надеюсь, что когда-нить выйдет вторая версия.
а вообще в этой программе есть всё, о чём я пока мечтал. вот прикольно!
значит всё же велосипед я изобрёл!
итак главная тема для продолжения.
кто возьмётся за бесплатный проект!
равнение на Program Tree!
Здравствуйте, damiryaka, Вы писали:
D>слава Богу, что и это уже есть. то есть скоро будет, как обещал уважаемый Дарней. (смотри предыдущее сообщение)
уточню сразу
я сейчас работаю над генератором парсеров, который и надеюсь достаточно скоро довести хотя бы до беты
что касается парсера конкретно для С++, то он будет достаточно сырой. Сам понимаешь, полноценный парсер для плюсов — это оччень непростая задача.
Здравствуйте, damiryaka, Вы писали:
D>наверно мне упростит. D>интересно, я один такой на свете?
Я тоже думаю, что представление проги в виде дерева было бы удобнее
правда, намного ценнее была бы другая фича — выделить кусок кода и получить список всех типов, от которых он зависит
этой фичи мне сейчас больше всего не хватает
Здравствуйте, swame, Вы писали:
S>Вот чего бы хотелось по теме "Анализ чужих исходников"- это анализатор, S>показывающий куски кода сделанные по принципу Copy/Paste (с небольшими S>изменениями) для дальнейшего рефакторинга. S>Меня такая штука интересует для Delphi. S>Или кто знает что-то готовое ?
AntiCutAndPaste is designed to search for text fragments that have been copied and pasted in programming language source code or plain text. It is tested on sources from large C++, Visual Basic, Delphi, Java, and C# projects.
Здравствуйте, damiryaka, Вы писали:
P>>Хорошо бы было если б твоя программа к сворачиваемым блокам добавляла комментарий в их стиле. P>>Т.е. смотришь — блок, разобрался — добавил комментарий, а он сразу добавился в код, т.е. чтобы после можно было удобно комментировать код... эдакая фича...
Уже есть в прогармме Program Tree Editor. Там можно не только смотреть код, но и редактировать. Ну и конечно же сохранять результаты. Только там не такое уж и простое дерево — используется смесь дерева и обычного аутлайнинга. Блоки {} показываются, в виде узлов. А комментарии, #if — #endif, case можно просто сжимать.
damiryaka>Предлагаю обсудить: нужно ли развитие этой идее? нужно ли выложить исходники? нужно ли написать статью?
или это проект нового велосипеда?
Не знаю как ты собираешся поступать с такими кусками кода, но если их тоже делать узлами, то ИМХО будет определённая неясность.
Что касается удобства использования, то весь чужой код я предпочитаю смотреть в виде дерева. Для набивания использую дерево, только для достаточно больших функций >50 строк. Если в файле функции маленькие, то выгод от дерева особых нет. Кроме того, дерево выглядит некрасиво, если в функции много блоков и все последовательно вложены:
{
{
{
}
}
}
а если есть хоть небольшое ветвление, то тогда дерево на 100% удобнее:
{
{
{
}
}
{
}
}
Крме того, Был здесь топик: Почему не все программисты выравнивают код?
Для программ которые показывают дерево, таких проблем в принципе нет.
Вообще идея не новая, но хорошая. До program tree editor я пользовался другой программкой, сделанной году 2000. Название точно не помню. Но там не было возможности менять код и даже скопировать выбранный блок — что жутко бесило. Обычно ведь анализ сам по себе не нужен, дальше нужно что-то делать с какой-либо часть текста.
ИМХО Добавь Сopy, Paste, coloring и у тебя уже продукт, который можно юзать.
Я лично купил Program tree editor, если сделаешь свой бесплатным может будет желающих его использовать.
P.S. Что не нравится у pte так это его пестрота. Хотя удобно когда блоки if, for разного цвета, но дерево становится похожи на новогоднюю елку — очень глаза напрягает. Лечится изменением настроек, но это большой минус.