从C#分析到Roslyn的Java分析

我的问题纯粹是理论上的,如果是肯定的答案,我想稍后再实施。

是否可以使用Roslyn创建代码分析并将其存储在dll中,然后在基于JVM的项目中使用该dll的内容? 我知道Visual C#和Java语言有一些相似之处。 但是现在只能分析C#和VB(我认为F#暂时搁置了),当它具有确切的功能(比如循环)时,它是否可以将从C#到Java的代码分析应用到Java中。

从这个职位 ,我得到的DLL可以调用使用Java。 我会很高兴知道,当我使用VB或C#时,通过语法树,它可以做Java,甚至更类似于C#的Kotlin相同。

我想你已经误解了Roslyn的角色。 目的是将C#和VB.NET编译器在程序结构上的大量信息暴露给语言开发人员工具的作者。 引用Eric Lippert的话 :

Roslyn是可用于C#,VB或其他管理语言的类库。 其目的是为了分析C#和VB代码。

它不是客户自己扩展C#或VB语言的机制; 它是分析现有语言的机制。

Roslyn绝对不是分析Java的机制,因为它不是用来分析Java的。 它被写成分析一个有点类似的语言,C#(相似性是由设计,语言作者希望它是现有的C / C + + / Java程序员有点熟悉)。 但是,除了Java的最微不足道的片段之外,所有的C#都是无效的。 这不仅仅是像通用约束和通配符这样的深奥特征,而且像Equals这样的核心方法在两者中有不同的外壳。 Roslyn可能无法分析任何重要大小或复杂度的Java片段。