【QCon】精华内容上线85%,全面覆盖“人工智能+”的典型案例!>>> 了解详情
写点什么

Nitra:CLR 开源语言工具

  • 2014-06-05
  • 本文字数:619 字

    阅读完需:约 2 分钟

Nitra 是用于处理运行在 CLR 上的编程语言的工具集,JetBrains 前不久将它的源代码公之于众。开发者可以用 Nemerle 定义语法,然后 Nitra 根据定义来构建语法分析器并产生类,并以此描绘和导航抽象语法树(AST)。

Nitra 能够构建语法块并可以跨语言重用,这是很有趣的功能。Nitra 附带的模块,比如 whitespaces CStyleComments ,可以很轻松地应用在你自己语言的语法定义中。

使用 Nitra 需要三个步骤:

一旦你定义好句法、抽象语法树和语言分析器,你还能在 Visual Studio 中获得代码高亮、代码折叠和错误高亮的支持。其他功能比如静态分析、重构、导航和字符查找等功能也会很快面世。

这个项目相当得有志向。Nemerle 的开发者(同时也是 Nitra 的幕后开发者)计划在 Nitra 完成后使用它重写 Nemerle。然而,Nitra 仍然处于预览阶段,它还需要些时间来完善自己,尤其是缺少些诸如编译之类的功能。

JetBrains 著名的决定就是不使用Roslyn 支撑他们Resharper 的功能,特别是Resharper 要支持许多其他的语言,而Roslyn 仅仅是面向C#和VB 的。Nitra 看起来让这个多语言架构更加有扩展性。由于仅仅在Nitra 中定义语法就激活语言服务,JetBrians 将来可以更快的支持新语言,这是该项目的关键驱动因素之一。

你可以通过翻阅 Nita 源代码或者这个文档来了解更多信息。

查看英文原文: Nitra: Open Source Language Tooling For CLR

2014-06-05 20:551943
用户头像

发布了 21 篇内容, 共 64198 次阅读, 收获喜欢 1 次。

关注

评论

发布
暂无评论
发现更多内容

DCache 分布式存储系统|Set, ZSet 缓存模块的创建与使用

TARS基金会

nosql 缓存 分布式 MySQL 高可用 TARS

uni-app跨端开发H5、小程序、IOS、Android(二):开发工具HBuilderX使用技巧

黑马腾云

微信小程序 uni-app App 3月日更 Hbuilderx

Wireshark 数据包分析学习笔记Day15

穿过生命散发芬芳

Wireshark 数据包分析 3月日更

(28DW-S8-Day27) 销售流程重整

mtfelix

28天写作

Go训练营第5周——评论系统架构设计

Glowry

filecoin矿机系统开发|filecoin矿机软件APP开发

系统开发

JDBC—往MySQL中写入Blob数据时,出现错误:com.mysql.jdbc.PacketTooBigException: Packet for query is too large (5724349 > 1048576)

打工人!

Java MySQL JDBC Blob

手机

ES_her0

28天写作 3月日更

算法攻关-最长公共子序列_1143

小诚信驿站

刘晓成 小诚信驿站 28天写作 算法攻关 最长公共子序列

filecoin云算力软件开发|filecoin云算力APP系统开发

系统开发

filecoin挖矿软件开发|filecoin挖矿APP系统开发

系统开发

低代码/无代码,作为IT开发界的“新英雄”它究竟有何神技?

优秀

低代码 无代码开发

收藏!这些IDE使用技巧,你都知道吗

xcbeyond

IDEA 技巧 3月日更

"无密码时代"已经来临!

龙归科技

身份认证

Python 的特殊变量 __name__

HoneyMoose

GO训练营第9周——网络编程

Glowry

JVM - 类加载机制

insight

3月日更

如何评估需求优先级?

石云升

项目管理 28天写作 职场经验 管理经验 3月日更

GO训练营第8周——分布式缓存与事务

Glowry

打卡学习VBA和PYTHON week01

小怪兽

IT蜗壳教学

经典排序算法分析

roseduan

算法 排序算法

B+树索引优点

一个大红包

3月日更

后台产品导航栏原型设计小教程

lenka

3月日更

产品经理训练营 Week9 学习心得

Mai

聊聊 Python 自动化脚本部署服务器全流程(详细)

星安果

Python 自动化 服务器 部署

容器 & 服务:Kubernetes扩容

程序员架构进阶

Docker 容器 kubernete 28天写作 3月日更

翻译:《实用的Python编程》06_04_More_generators

codists

Python

产品经理训练营 Week9 作业

Mai

github 这样用,事半功倍

hepingfly

Java GitHub 搜索 使用技巧

mybatis实现分页的几种方法

xiezhr

mybatis 分页 mybatis分页

GO训练营第6、7周——可用性设计

Glowry

Nitra:CLR开源语言工具_.NET_Roopesh Shenoy_InfoQ精选文章