Определить строку кода в исходном коде C с помощью регулярных выражений - PullRequest
0 голосов
/ 15 мая 2018

Я пытаюсь отсканировать исходный код C, чтобы обнаружить строку кода, а затем получить выражения A и expressionB в виде, подобном следующему:

(*((_type*)expressionA)) = expressionB;

с регулярным выражением:

[*][(][\s]*[(\s]*.*[*][)\s]*(.*)\s*[)]\s*=(.*)[\s]*;

Вот ссылка с некоторыми тестами.

Но это регулярное выражение не может охватывать такие случаи:

(*((volatile unsigned short*)(type01_01_06_base + (type01_01_06_offset * 1))) = (unsigned short)(unsigned long)0x01010101);

(*((volatile unsigned char*)add)) = (unsigned char)data;

Есть ли какое-либо решение использовать регулярные выражения для покрытия всех случаев в моей проблеме?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...