Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > Парсинг c++ кода


Автор: Enchance 29.7.2012, 21:57
Есть идея написать софтину для визуального представления алгоритма программы с целью облегчения понимания чужого кода c++. И точно помню, что я не так давно случайно натыкался в сети на опенсорсный проект/библиотеку, которая умеет парсить и анализировать код, еще в описании было сказано, что-то на подобии "только сумасшедшие могут  реализовывать парсинг кода самостоятельно, все профессионалы давно используют эту вещь", и еще помню, что первая буква в названии C (логично, в общем-то).

Может кто-нибудь понял, о какой программе идет речь? Мне всего-то нужно:
1. Повытаскивать из кода синтаксические конструкции (переменные, классы, функции, циклы, разветвления, комментарии, итд).
2. Отследить процесс выполнения программы (чтобы иметь возможность представить ее в виде блок-схемы).
3. Возможность превратить обфусцированный код в надлежащий вид (со всеми отступами).

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

Автор: Amp 29.7.2012, 22:03
У clang есть прикрученный api, который позволяет достучаться до ast кода.

Автор: Gluttton 29.7.2012, 22:52
Просто к сведению. Есть платная утилита с пробным периодом, которая называется http://www.scitools.com/. И еще есть gccxml которая результат парсинга представляет в xml-выхлоп, но я слышал, что она скорее мертва чем жива.

Автор: boostcoder 30.7.2012, 10:02
как уже сказали выше - clang.

Цитата(Gluttton @  29.7.2012,  22:52 Найти цитируемый пост)
называется Understand

хорошая софтина. несколько лет использую.

Автор: Dem_max 6.8.2012, 19:53
http://habrahabr.ru/post/148508/

Автор: vsvpryanik 7.8.2012, 10:27
Цитата(Gluttton @ 29.7.2012,  22:52)
Просто к сведению. Есть платная утилита с пробным периодом, которая называется http://www.scitools.com/. И еще есть gccxml которая результат парсинга представляет в xml-выхлоп, но я слышал, что она скорее мертва чем жива.

Большое спасибо, жаль временная активация только  smile  http://xn--80adgdicj6a8a5a.xn--p1ai/  smile 

Автор: NoviceF 7.8.2012, 18:15
В netbeans'е встроенный навигатор почти поддерживает 1й пункт smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)