Irony is a development kit for implementing languages on .NET platform. It uses the flexibility and power of c# language and .NET Framework 3.5 to implement a completely new and streamlined technology of compiler construction.
Unlike most existing yacc/lex-style solutions Irony does not employ any scanner or parser code generation from grammar specifications written in a specialized meta-language. In Irony the target language grammar is coded directly in c# using operator overloading to express grammar constructs. Irony's scanner and parser modules use the grammar encoded as c# class to control the parsing process. See the
expression grammar sample for an example of grammar definition in c# class, and using it in a working parser.
Initial ReleaseThe initial release contains implementation of compiler front-end modules - scanner and LALR(1) parser. We provide several test grammars and parser implementations based on them: a grammar for simple arithmetic expressions and simplified grammars for c#, Scheme, Script.NET, SQL, GwBasic, JSON and others.
Sample expression grammar allows evaluation of arithmetic expressions using Irony's built-in AST interpreter.
System RequirementsWindows XP/Vista, .NET Framework 3.5, Visual Studio 2008
Project News
- Writing your first Domain-Specific Language - two articles by Daniel Flower at CodeProject.com. An excellent introduction to using Irony for parsing "little" application-specific languages - DSLs.
- A Google-like Full Text Search - an article by Michael Coles about Google-to-SQL Server full-text search query converter based on Irony.
- 02/10/2009 - new article on CodeProject: Writing your first Visual Studio Language Service by Ben Morrison about using Irony for language integration into Visual Studio.
- April 20 - Recordings of presentations at 2009 Lang.NET symposium are available online. I've made a couple of presentations there, the first one about Irony. Watch it, come back with comments. Watch other recordings - very interesting stuff!
- May 2, 2009. Started a blog about Irony: http://irony-roman.blogspot.com/. The first post is about changes in April code update. Enjoy it!
- Oct 12, 2009. Updated the release download version
More informationDemo Running InstructionsExpression Grammar sampleIrony presentation at LangNET 2009 symposiumIrony blog