Un pequeño tesoro Open Source: Irony .NET

Supongo que estamos todos de acuerdo en que una de las formas de «entrenar» nuestras habilidades de programación es leer código. Escribirlo también, pero no nos olvidemos de ojear el cerebro código de otros. Algunos lo encuentran hasta releajante mirar implementaciones clásicas de parsers, lexers y árboles abstractos de datos (jeje, si, relajante, de verdad!).

De hecho es increible encontrar proyectos que uno no conoce y maravillarse con lo que encuentra. Uno de esos proyectos que merecen mención es «Irony», un kit de implementación de lenguajes .NET.

Irony es un kit de desarrollo para implementar lenguajes .NET. Al contrario de todas las soluciones yacc/lex existentes, Irony no usa ningún escaner o parser de código para generar especificaciones gramáticas escritas en en un meta-lenguaje. En Irony la gramática se codifica directamente en C# usando la sobrecarga de operadores para expresar construcciones gramáticas. Los módulos de escaner y parser usan la gramática codificada como una clase C# para controlar el proceso de parseo. Mirad el ejemplo de gramática para ver un ejemplo de definición de gramática en una clase C#, y usando un parser.

Caputra de pantalla de Irony
Caputra de pantalla de Irony

 

No dejéis de ojearlo. Si no has podido estudiar compiladores, este es un buen momento para trastear, todo lo que aprendas sobre este tema te será muy útil.

Juan María Laó Ramos.