Irony is a new-generation .NET compiler construction kit. It utilizes the full potential of c# 2.0 and .NET Framework 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 parsing arithmetic expressions, and simplified grammars for Scheme, Python and Ruby.
System RequirementsWindows XP/Vista, .NET Framework 3.5, Visual Studio 2008
Project News
- The alpha version of Script.NET using Irony-based parser is available at Script.NET home page: http://www.protsyk.com/scriptdotnet/
- Daniel Flower implemented Basic-to-JavaScript translator based on Irony. See article on CodeProject: http://www.codeproject.com/KB/recipes/JSBasic.aspx
- Irony project moved to Visual Studio 2008, .NET Framework 3.5
- The first implementation of interpreter/runtime infrastructure is available in changeset 10633
More informationDemo Running InstructionsExpression grammar sampleProject RoadmapArticle on CodeProject - Introduction to IronyLangNET 2008 presentationsSource changes history