Подтвердить что ты не робот

разбор кода C с помощью python

У меня огромный C файл (~ 100k строк), который мне нужен, чтобы анализировать. В основном мне нужно получить информацию об отдельных полях каждой структуры (например, имя поля и тип для каждого поля в структуре) из ее определения. Есть ли хороший (открытый исходный код, который я могу использовать в своем коде), чтобы сделать это уже? Или я должен написать свой собственный парсер для этого. Если я должен написать свой собственный, может ли кто-нибудь предложить хорошее место для начала? Раньше я никогда не работал с python.

благодаря

4b9b3361

Ответ 1

Взгляните на эту ссылку для обширного списка инструментов анализа, доступных для Python. В частности, для синтаксического анализа кода c попробуйте pycparser

Ответ 2

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

Тем не менее, pycparser, как предложил Дхара, вполне может быть хорошей заменой, и определенно лучше, чем любая попытка опрокинуться.