Есть задача частично (что значит частично, сейчас поймёте) распарсить Си++ файл.
То есть, пусть есть файл вида
template <typename T>
class A
{
private:
int a;
B<x> b;
public:
A()
{
float x = 5.6;
cout<<""countructor! wow!";
}
int verycoolmethod(char * some_parameter, const int & another_param)
{
return 37;
}
}
Надо получить информацию вида
class|A|T
field|int|a|private
field|B<x>|b|private
method|.ctor|void
variable|x|float
method|verycoolmethod|int
parameter|some_parameter|char *
parameter|another_parameter|const int &
то есть фактически выдрать все
описания. Как/чем это проще всего сделать?
приблуды от MS типа
class A
{
int _i;
void putprop(int i)
{
_i = i;
}
int getprop()
{
return _i;
}
__declspec(property(get = getprop, put = putprop)) int the_prop;
};
будут
Тыканье в документацию и ссылки на готовые решения приветствуется.
Глобальная задача — сделать вменяемую подсветку синтаксиса и автокомплит для языка очень похожего на Си++.