Метагенератор/парсер С++ файлов

Задание закрыто
Стоимость:30 000 рублей
Срок выполнения:30 дней
Варианты оплаты:Без предоплаты
Дата публикации:2014-06-08 18:37
Был на сайте:2021-10-31 13:53

Метагенератор/парсер С++ файлов

 
Задача

Требуется разработать метагенератор на основе LLVM/Clang(http://clang.llvm.org/), который парсит C++ код (классы, методы, переменные, комментарии), затем генерирует по заданному шаблону(см. ниже) выходной файл.
Результатом парсинга должен быть сгенерированный файл с метаинформацией.

Пример:
входящий файл: MyClass.h и MyClass.cpp

--------MyClass.h--------
#include <string>
/*
description of MyClass
*/
class MyClass
{
public:
//desc of someFunc
void someFunction(int n, const std:string & str);

//desc of var1
int var1;

}

--------MyClass.cpp--------
#include "MyClass.h"
void MyClass::someFunction(int n, const std:string & str)
{
//..body
}

===>запускаем метагенератор из командной строки:
metage MyClass.cpp

парсим MyClass.cpp и на выходе получаем файл с метаинформацией приблизительно следующего вида:
--------MyClass_meta.cpp--------
GDefineMetaClass<MyClass>
::Policy<GMetaPolicyNoCopyConstructor>
::declare("MyClass")
._method("someFunction", &MyClass...

Видеть полную информацию и оставлять заявки могут только авторизованные пользователи.
Заявок нет

Оставлять заявки могут только авторизованные пользователи.