Pregunta

Necesito convertir el código C # en una representación XML equivalente.
Planeo convertir el código C # (fragmentos de código C # 2.0, sin genéricos o tipos anulables) a un AST y luego convertir el AST a XML. Buscando un simple lexer / parser para C # que genere un AST.
Cualquier indicador sobre la conversión de código C # a una representación XML (que se puede convertir de nuevo a C #) también sería muy útil.

Saludos cordiales,

Otros consejos

Como dice Mitch, Antlr puede ser tu solución. Puede transformar la salida AST de Antlr según sus necesidades y luego serializarla con xstream. Ese es el enfoque que estoy usando en mi proyecto bs, si alguien conoce una mejor manera, también será genial para mí.

Puede encontrar ejemplos de gramática csharp como, por ejemplo, http: //www.antlr. org / grammar / 1127720913326 / tkCSharp.g o http: // www. antlr.org/grammar/1151612545460/CSharpParser.g pero es posible que deba adaptarlo a ANTLRV3 o a sus propias necesidades.

Nuestro DMS Software Reengineering Toolkit es un ecosistema para crear analizadores de código y transformadores DMS está parametrizado por una definición de lenguaje y tiene definiciones de lenguaje para C #, Java, C ++, C, PL / SQL, PHP, JavaScript, COBOL y una variedad de otros idiomas. Cuando DMS analiza de acuerdo con una definición de idioma, crea automáticamente un AST. Una biblioteca AST proporcionada por DMS puede imprimir el árbol en forma de paréntesis tipo Lisp, o en formato XML. En lugar de convertir XML nuevamente en código fuente, DMS puede regenerar el código fuente directamente desde el AST. DMS también proporciona transformaciones de fuente a fuente para permitir la manipulación del AST.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top