Developer(s) | Roman Ivantsov |
---|---|
Written in | C# |
Operating system | Cross-platform |
Platform | .NET Framework |
License | MIT License |
Website | https://github.com/IronyProject/ |
Irony is a parser framework for language implementation on the .NET platform. Unlike most existing yacc/lex-style solutions, it does not employ code generation (thus Irony is not a parser generator) of a scanner/parser from grammars written in an external DSL. The grammars for the target language are coded directly in C# instead. The framework implements a LALR(1) parser.[1]
Terminal and nonterminal symbols and production rules are defined in an object oriented flavor of the EBNF using operator overloading. The framework allows for the generation of an abstract syntax tree which can be traversed using the visitor pattern or evaluated using an interpreter.