Nitra is a language workbench. You can use Nitra to create or extend a general-purpose programming language or a domain-specific language (DSL).
You create extended “grammar” of your language in textual form. Nitra compiles this “grammar” and produce:
Extensible parser with automated error recovery.
Parse Tree with comprehensive information about the code.
AST (Abstract Syntax Tree).
Set of symbols, name binding and resolving subsystem.
Resharper plugin with basic IDE services.
Any Nitra based language can be extended with additional syntax rules even during parsing process.
Following screenshot shows Resharper plugin for C# language implemented in Nitra. This plugin (like any other Nitra plugin) supports: syntax highlighting, symbol highlighting (such as class and method names etc.), navigation (goto declaration, find usages, etc.), validation and real-time error reporting/highlighting. File extension ‘.ncs’ is used to avoid conflict with Visual Studio and ReSharper language service.