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.
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.
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
Expression Grammar sample
Willing to Contribute?
Demo Running Instructions
Wikibook: Irony - Language Implementation Kit
- everybody is welcome to contribute.
My blog and other projects
VITA Application Framework