This project has moved and is read-only. For the latest updates, please go here.
Irony is a development kit for implementing languages on .NET platform. 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.

Download contents
The download zip contains core Irony libraries implementing a parsing engine, an interpreter, a number of sample grammars, unit test projects, and Grammar Explorer tool for viewing and debugging your languages (see picture below).
We provide multiple sample grammars for languages like GW Basic, Java, c#, Scheme, SQL, JSON and some others. Irony includes a ready-to-use expression evaluator that can be easily plugged-in into a .NET application.


System Requirements
Windows 7, .NET Framework 4.0, Visual Studio 2010

Irony on the Web
Irony presentation at LangNET 2009 symposium
Scott Hanselman about Irony.
Writing your first Domain-Specific Language
A Google-like Full Text Search engine based on Irony parser.
Writing your first Visual Studio Language Service
Writing a calculator in c# using Irony
Shakespeare Language Compiler using Irony

More information
Expression Grammar sample
Willing to Contribute?
Demo Running Instructions
Wikibook: Irony - Language Implementation Kit - everybody is welcome to contribute.

My blog and other projects
Irony blog
VITA Application Framework

Last edited Jun 10, 2014 at 6:53 PM by rivantsov, version 87