Regex для анализа объявлений функций C / C ++

Мне нужно разобрать и разделить функции C и C ++ на основные компоненты (тип возвращаемого значения, имя функции / класс и метод, параметры и т. Д.).

Я работаю либо из заголовков, либо из списка, где подписи принимают форму:

public: void __thiscall myClass :: method (int, класс myOtherClass *)

У меня есть следующее регулярное выражение, которое работает для большинства функций:

(?<expo>public\:|protected\:|private\:) (?<ret>(const )*(void|int|unsigned int|long|unsigned long|float|double|(class .*)|(enum .*))) (?<decl>__thiscall|__cdecl|__stdcall|__fastcall|__clrcall) (?<ns>.*)\:\:(?<class>(.*)((<.*>)*))\:\:(?<method>(.*)((<.*>)*))\((?<params>((.*(<.*>)?)(,)?)*)\)

Есть несколько функций, которые он не любит анализировать, но которые соответствуют шаблону. Меня не беспокоит сопоставление функций, которые не являются членами класса в данный момент (с этим можно справиться позже). Выражение используется в программе на C #, поэтому<label>s для простого извлечения групп.

Мне интересно, есть ли стандартное регулярное выражение для анализа всех функций, или как улучшить мое, чтобы обрабатывать странные исключения?

Ответы на вопрос(3)

Ваш ответ на вопрос