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.
The plugin was generated from language specification DSLs.