For more than a year, JetBrains has been developing a new technology named Nitra. While it is still in the works, JetBrains has reached a point where it is finally comfortable enough to provide an update and some background information. According to JetBrains, Nitra is important because it makes the process of studying, learning and implementing a new language easier. It allows a much faster turnaround when providing support for new languages and frameworks.
What is Nitra?
Below is a syntax module for Gherkin being defined using Nitra. “Add it to a project, and combined with a parser that also ships with Nitra, you can now parse Cucumber files, obtaining an Abstract Syntax Tree,” JetBrains wrote on its blog.
But Nitra serves as more than a parser generator. It provides the ability to take existing grammar and either extend it statically or dynamically, which allows not only the definition of a new language, but also the extension of existing languages. Nitra also delivers features such as syntax, highlighting, code folding, static analysis, refactoring, navigation and symbol lookup.
“Instead of manually having to create parsers and language/tooling support for every new technology, Nitra would provide us with this with very little effort, in essence merely defining a syntax module,” wrote JetBrains.
More information and updates can be found on the Nitra Twitter account.