анализаторы/парсеры C или C++
Для Си++ найти нормальный парсер очень тяжело, почти все они коммерческие. Как вариант - брать исходники gcc. Или в гугл, первая ссылка на шокала: http://www.cs.berkeley.edu/~smcpeak/elkhound/
нужно будет полноценный анализатор писать.
Мы делаем кое-что подобное. если интересно - в приват.
elsa и oink - как раз используют elkhound.
C++ в общем-то и не нужен, к счастью.
Для Си++ найти нормальный парсер очень тяжело, почти все они коммерческие.Их мало, но elsa очень радует. Она умеет через typechecking разрюхивать неоднозначности и даже находит все instantiation шаблонов.
Жестокая штука.
из gcc ничего выковырять точно не получится, оно там надёжно привязано чтоб не упёрли.
о, на этого зверя еще не натыкался, спасибо.
antlr C не распарсит, кажися, - грамматика LR.
на сайте antlr есть грамматики и для C и для C++.
Оставить комментарий
shlyumper
Нужен анализатор С или C++, который было бы не очень сложно дополнить своей функциональностью. Задача достаточно простая: промаркировать все функции в исходниках в зависимости от каких-то их свойств (например, наличие обращения к глобальным переменным). Писать свой парсер совершенно не хочется. Соответственно, вопрос: можете посоветовать какие-нибудь готовые парсеры для C или C++, которые на выходе бы давали AST. Лучше, чтобы сам парсер был на чем-либо более читаемом, типа python, perl, lisp, ML... (то есть elsa/oink можно не советовать).