Skip to end of metadata
Go to start of metadata

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

  • No labels