Solía usar OPENÇ ++ (http://opencxx.sourceforge.net/opencxx/html/overview.html) para llevar a cabo la generación de código como:marco compilador-Fuente-fuente quería
Fuente:
class MyKeyword A {
public:
void myMethod(inarg double x, inarg const std::vector<int>& y, outarg double& z);
};
Generado:
class A {
public:
void myMethod(const string& x, double& y);
// generated method below:
void _myMehtod(const string& serializedInput, string& serializedOutput) {
double x;
std::vector<int> y;
// deserialized x and y from serializedInput
double z;
myMethod(x, y, z);
}
};
Este tipo de la generación de código coincide directamente con el caso de uso en el tutorial de OpenC++ (http://www.csg.is.titech.ac.jp/~chiba/opencxx/tutorial.pdf) al escribir un programa de meta-nivel para manejar "MyKeyword", "inarg" y "outarg" y performin g la generación de código. Sin embargo, OpenC++ está algo desactualizado e inactivo ahora, y mi generador de código solo puede funcionar en g ++ 3.2 y desencadena un error al analizar los archivos de cabecera de g ++ de la versión superior.
He examinado VivaCore, pero no proporciona la infraestructura para compilar el programa de meta niveles. También estoy mirando LLVM, pero no puedo encontrar la documentación que me tutorice para calcular mi uso de compilación fuente a fuente. También conozco el marco del compilador ROSE, pero no estoy seguro de si se adapta a mi uso, y si su binario front-end C++ patentado se puede usar en un producto comercial, y si hay una versión de Windows disponible.
Cualquier comentario y consejos para el tutorial específico/papel/documentación son muy apreciados.
No puede usar el marco Rose en un contexto comercial sin obtener su propia licencia para la interfaz EDG. No sé si Rose tiene una versión de Windows. –