从 C# 分析到使用 Roslyn 的 Java 分析
From C# analysis to Java analysis with Roslyn
我的问题是纯理论性的,如果是肯定的答案,我想稍后再实施。
是否可以使用 Roslyn 创建代码分析并将其存储在 dll 中,然后在基于 JVM 的项目中使用该 dll 中的内容?
我知道 Visual C# 和 Java 语言之间有一些相似之处。但是目前只能分析 C# 和 VB(我认为 F# 暂时搁置了),它是否可以在具有确切功能时应用 C# 到 Java 的代码分析(例如循环)。
从this post,我了解到可以使用Java 调用dll。我很高兴知道,当我在使用 VB 或 C# 时浏览语法树时,它可以对 Java 甚至与 C# 更相似的 Kotlin 执行相同的操作。
我认为您误解了 Roslyn 的作用。目的是向语言开发工具的作者公开 C# 和 VB.NET 编译器在程序结构方面的丰富信息。引用 Eric Lippert:
Roslyn is a class library usable from C#, VB or other managed languages. Its purpose is to enable analysis of C# and VB code.
和
It is not a mechanism for customers to themselves extend the C# or VB languages; it is a mechanism for analyzing the existing languages.
Roslyn 肯定不是分析 Java 的机制,因为它不是为分析 Java 而编写的。它的编写分析了一种有点相似的语言,C#(相似性是设计使然,语言作者希望现有的 C/C++/Java 程序员对它有点熟悉)。但是,Java 中除了最琐碎的片段之外的所有片段都不是有效的 C#。这不仅仅是像通用约束和通配符这样深奥的特性,而且像 Equals
这样的核心方法在两者中有不同的外壳。 Roslyn 不太可能分析任何显着大小或复杂性的 Java 片段。
我的问题是纯理论性的,如果是肯定的答案,我想稍后再实施。
是否可以使用 Roslyn 创建代码分析并将其存储在 dll 中,然后在基于 JVM 的项目中使用该 dll 中的内容? 我知道 Visual C# 和 Java 语言之间有一些相似之处。但是目前只能分析 C# 和 VB(我认为 F# 暂时搁置了),它是否可以在具有确切功能时应用 C# 到 Java 的代码分析(例如循环)。
从this post,我了解到可以使用Java 调用dll。我很高兴知道,当我在使用 VB 或 C# 时浏览语法树时,它可以对 Java 甚至与 C# 更相似的 Kotlin 执行相同的操作。
我认为您误解了 Roslyn 的作用。目的是向语言开发工具的作者公开 C# 和 VB.NET 编译器在程序结构方面的丰富信息。引用 Eric Lippert:
Roslyn is a class library usable from C#, VB or other managed languages. Its purpose is to enable analysis of C# and VB code.
和
It is not a mechanism for customers to themselves extend the C# or VB languages; it is a mechanism for analyzing the existing languages.
Roslyn 肯定不是分析 Java 的机制,因为它不是为分析 Java 而编写的。它的编写分析了一种有点相似的语言,C#(相似性是设计使然,语言作者希望现有的 C/C++/Java 程序员对它有点熟悉)。但是,Java 中除了最琐碎的片段之外的所有片段都不是有效的 C#。这不仅仅是像通用约束和通配符这样深奥的特性,而且像 Equals
这样的核心方法在两者中有不同的外壳。 Roslyn 不太可能分析任何显着大小或复杂性的 Java 片段。