Я бы порекомендовал вам использовать модуль синтаксического анализатора вместо регулярных выражений, поскольку он будет обрабатывать такие вещи, как многострочные функции, различные отступы и прерывать некорректный ввод, чтобы вы могли лучше управлять всем. «Избегайте регулярных выражений, если можете» - это одно из правил, которым я живу, поскольку они часто приносят больше хлопот, чем стоят.
Edit:
Ох, ну ладно. Я неправильно понял ваш вопрос. Я думал, что вы хотите разобрать сам код Python. Я немного погуглил и нашел это , но это только C. Может быть, вы можете расширить это? Грамматика для C ++ есть в «Книге языков программирования C ++»