Здравствуйте, Sherlock, Вы писали:
S>Хочется сделать такую прогу:
S>парсить заголовочник и получать на выходе некоторое древовидное описание структур в нем.
S>интересуют только имена и размер элементов-данных (функции не нужны). Собственно данная информация
S>требуется для последующего отображения значений полей структуры с указанием имен.
S>Есть что-то похожее, уже написанное? И если нет — кто-нибудь подскажет такой простенький парсер
S>для данной задачи?
если умеешь пользоваться yacc, то можно соорудить простой парсер примерно так:
(на вскидку)
Файл : ПоследовательностьСтруктур
; // хватит
ПоследовательностьСтруктур : Структура
| ПоследовательностьСтруктур Структура
;
Структура : 'struct' Идентификатор '{' ТелоСтруктуры '}' ';' // <- вот здесь структура
// разобрана, можно
// сохранить ее где-нибудь
| error ';' // - пошло все куда подальше до
// следующей точки с запятой
;
ТелоСтруктуры : СписокПолей
;
СписокПолей : ОбъявлениеПеременной
| СписокПолей ОбъявлениеПеременной
;
ОбъявлениеПеременной : Тип Идентификатор ';' // <- тут объявление переменной разобрано
// можно его где-нибудь сохранить
;
Тип : ПростойТип
// можно попробовать и со своими типами
;
ПростойТип : 'int'
| 'long'
// и т.д.
;
Здравствуйте, Sherlock, Вы писали:
S>Хочется сделать такую прогу:
S>парсить заголовочник и получать на выходе некоторое древовидное описание структур в нем.
S>интересуют только имена и размер элементов-данных (функции не нужны). Собственно данная информация
S>требуется для последующего отображения значений полей структуры с указанием имен.
S>Есть что-то похожее, уже написанное? И если нет — кто-нибудь подскажет такой простенький парсер
S>для данной задачи?
http://ctags.sourceforge.net/