Overview
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.
The plugin was generated from language specification DSLs.
Roadmap
How to use
Install – instructions to setup environment.
Using Nitra – instructions to use Nitra.
Build Nitra from sources
Manual
Syntax
Quasi-quotation
Calculator sample
Grammars
Blog posts
An Introduction to Nitra
Nitra goes Open Source!
Getting started with JetBrains Nitra
Development
Sorce code
Develop – instructions to setup development environment.
Issues tracker