Nitra 是用于处理运行在 CLR 上的编程语言的工具集,JetBrains 前不久将它的源代码公之于众。开发者可以用 Nemerle 定义语法,然后 Nitra 根据定义来构建语法分析器并产生类,并以此描绘和导航抽象语法树(AST)。
Nitra 能够构建语法块并可以跨语言重用,这是很有趣的功能。Nitra 附带的模块,比如 whitespaces 和 CStyleComments ,可以很轻松地应用在你自己语言的语法定义中。
使用 Nitra 需要三个步骤:
- 构建 Nitra 文件以生产语法分析器
- 用可视化工具调试和测试语法分析器
- 使用 Visual Studio 扩展让 IDE 支持你的语言
一旦你定义好句法、抽象语法树和语言分析器,你还能在 Visual Studio 中获得代码高亮、代码折叠和错误高亮的支持。其他功能比如静态分析、重构、导航和字符查找等功能也会很快面世。
这个项目相当得有志向。Nemerle 的开发者(同时也是 Nitra 的幕后开发者)计划在 Nitra 完成后使用它重写 Nemerle。然而,Nitra 仍然处于预览阶段,它还需要些时间来完善自己,尤其是缺少些诸如编译之类的功能。
JetBrains 著名的决定就是不使用Roslyn 支撑他们Resharper 的功能,特别是Resharper 要支持许多其他的语言,而Roslyn 仅仅是面向C#和VB 的。Nitra 看起来让这个多语言架构更加有扩展性。由于仅仅在Nitra 中定义语法就激活语言服务,JetBrians 将来可以更快的支持新语言,这是该项目的关键驱动因素之一。
评论