Skip to content
VladD2 edited this page Jan 30, 2016 · 3 revisions

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.
  • IDE 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.

Development

Nitra Build process

Clone this wiki locally