Я пытаюсь извлечь определенные жестко закодированные переменные из исходного кода C. Моя остающаяся проблема в том, что я хотел бы проанализировать инициализацию массива, например:
#define SOMEVAR { {T_X, {1, 2}}, {T_Y, {3, 4}} }
Достаточно разобрать этот пример на "{T_X, {1, 2}}" и "{T_Y, {3, 4}}", поскольку тогда можно выполнить рекурсию для получения полной структуры. Тем не менее, он должен быть достаточно общим, чтобы иметь возможность анализировать любые пользовательские типы.
Еще лучше был бы список регулярных выражений, которые можно использовать для дополнительных значений из общих конструкций кода C, таких как #define
, перечисления и глобальные переменные.
Код C предоставлен мне, поэтому я не могу его контролировать. Я бы предпочел не писать функцию, которая анализирует символ одновременно. Однако было бы нормально иметь последовательность регулярных выражений.
Это не проблема загрузки файлов в MATLAB или базовые регулярные выражения. Я использую определенное регулярное выражение, которое сохраняет группировки в скобках.
РЕДАКТИРОВАТЬ: похоже, регулярные выражения не делают рекурсии или произвольно глубоких совпадений. Согласно здесь и здесь .