Я пытаюсь понять код c ++ с открытым исходным кодом, и мне нужен способ создать список всех объявленных пространств имен. Я пишу свой код в Xojo (realbasic) со встроенной обработкой регулярных выражений.
Моя проблема в том, что я недостаточно знаком с регулярными выражениями, чтобы создать правильное выражение, чтобы найти «пространство имен», за которым следует неизвестное имя, а затем «{» — все в одной строке текста.
Я могу сам кодировать все остальное, мне просто нужно правильное регулярное выражение. Вся помощь приветствуется.
Вы можете попробовать namespace\s+(\w+)\s*\{
для наиболее распространенных случаев без комментариев между словами и не будет соответствовать что-то вроде using namespace std;
, В любом случае пространства имен могут быть вложенными, но здесь вы получите только плоский список всех имен.
Других решений пока нет …