Добрый день!
Стала задача написать некоторый анализатор C файлов. Который:
1. Разбирал enum'ы в пары (название,значение).
2. Разбирал структуры, в том числе вложенные, на пары (тип поля,название поля).
3. Разбирал массивы структур.
И всё это достаточно сильно сдобрено макросами.
Для чего это: чтобы по некоторым правилам создать другой C-файл
На чем это лучше делать?
Насколько хорош для этого скриптовый язык perl?
Спасибо.
Здравствуйте, Rimidalv, Вы писали:
R>Добрый день!
R>Стала задача написать некоторый анализатор C файлов. Который:
R>[....]
Вариант решения:
1) перед разбором файлы преобразовать препроцессором
2) получить AST в виде xml при помощи
gcc-xml
3) анализировать xml
Здравствуйте, 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>>
Здравствуйте, 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 для этого использовать почти безнадежно