Парсер C файлов
От: Rimidalv  
Дата: 09.04.07 15:27
Оценка:
Добрый день!

Стала задача написать некоторый анализатор C файлов. Который:
1. Разбирал enum'ы в пары (название,значение).
2. Разбирал структуры, в том числе вложенные, на пары (тип поля,название поля).
3. Разбирал массивы структур.
И всё это достаточно сильно сдобрено макросами.
Для чего это: чтобы по некоторым правилам создать другой C-файл

На чем это лучше делать?
Насколько хорош для этого скриптовый язык perl?
Спасибо.
Re: Парсер C файлов
От: achmed Удмуртия https://www.linkedin.com/in/nail-achmedzhanov-9907188/
Дата: 10.04.07 04:52
Оценка:
Здравствуйте, Rimidalv, Вы писали:

R>Добрый день!


R>Стала задача написать некоторый анализатор C файлов. Который:

R>[....]

Вариант решения:
1) перед разбором файлы преобразовать препроцессором
2) получить AST в виде xml при помощи gcc-xml
3) анализировать xml
Re[2]: Парсер C файлов
От: eBit Украина  
Дата: 10.04.07 09:40
Оценка:
Здравствуйте, achmed, Вы писали:

A>Здравствуйте, Rimidalv, Вы писали:


R>>Добрый день!


R>>Стала задача написать некоторый анализатор C файлов. Который:

R>>[....]

A>Вариант решения:

A>1) перед разбором файлы преобразовать препроцессором
A>2) получить AST в виде xml при помощи gcc-xml
A>3) анализировать xml

В качестве синтаксического анализатора хорошо себя показывает использование конечных автоматов.
Жаль не сохранились примеры парсания Pascal и С/C++ кода.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Парсер C файлов
От: z00n  
Дата: 11.04.07 15:20
Оценка:
Здравствуйте, Rimidalv, Вы писали:

Есть очень хороший и стабильный анализатор С файлов — проект "CIL Infrastructure for C Program Analysis and Transformation":
http://hal.cs.berkeley.edu/cil/
http://sourceforge.net/projects/cil

Можно еще посмотреть XTC:
http://www.cs.nyu.edu/rgrimm/xtc


Мне кажется, что perl для этого использовать почти безнадежно
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.