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 Release
The 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.
Scheme and expression samples are implemented with interpreter mode that allows direct evaluation of simple programs.

irony_GrammarExplorer2.jpg

System Requirements
Windows XP/Vista, .NET Framework 3.5, Visual Studio 2008

Project News
  • The first implementation of interpreter/runtime infrastructure is available in changeset 10633
  • 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!
  • April 24, 2009. Uploaded a "preview" version of new code. Not everything is working yet, will fix soon. The picture of Grammar Explorer above shows some new features - Parser tracing, choice of Parse method, etc.
  • 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!

More information
Demo Running Instructions
Expression Grammar sample
Irony presentation at LangNET 2009 symposium
Last edited May 20 at 6:28 AM by rivantsov, version 61

 

Want to leave feedback?
Please use Discussions or Reviews instead.

Updating...
© 2006-2009 Microsoft | About CodePlex | Privacy Statement | Terms of Use | Code of Conduct | Version 2009.6.1.15196