【问题标题】:Does Roslyn enable or potentially enable multiple langugage projects?Roslyn 是否启用或可能启用多个语言项目?
【发布时间】:2014-10-31 04:24:27
【问题描述】:

当前的 .Net 编译器是完全独立的。 Roslyn 应该将它们组合成一个编译器。有谁知道这是否会在一个项目中引入多种语言的能力?甚至可能在单个文件/类中?

目前你能做的最好的事情是在一个解决方案中包含多个项目,但我真的希望在一个项目中看到多种语言,我希望 Roslyn 最终可能会实现这一点。

【问题讨论】:

  • 致最接近投票的人:我不认为这是基于意见的。答案可能是肯定的,也可能是否定的,参考 Roslyn 中的技术细节,这使得添加变得困难或不可能。无论哪种方式,我都不认为这个问题是在要求一个选项。我不是在问微软是否可能会添加该功能,而是在问该工具(它是开源的)是否会添加。如果我要上一门关于编译器编写的课程和/或研究源代码足够长的时间,我想我可以在没有意见的情况下回答这个问题——希望已经做过一个或另一个(或两者)的人现在可以这样做.
  • 您的问题可能不是基于意见的,但标题是,这可能是票数接近的原因。你应该考虑编辑它。

标签: roslyn


【解决方案1】:

答案是否定的。我们在启动 Roslyn 项目时考虑了可能的需求,并认为它超出了范围。 Roslyn C# 和 VB 编译器共享很多代码,但它们是独立的编译器。符号表模型是独立的。对于在 C# 中表示类的符号,symbol.Members("x") 返回所有名为小写 x 的成员。 VB 符号表模型中的相同方法返回所有以小写字母 x 命名的成员和所有以大写字母 x 命名的成员。

我们本可以设计“成员”方法来接受一个额外的参数来说明查找是否应该是大小写相关的还是大小写无关的,但我们没有这样做。 C#符号表有C#编译器需要的内部数据,VB符号表有VB编译器需要的内部数据,分别实现。

【讨论】:

    猜你喜欢
    • 2019-02-22
    • 2016-05-06
    • 2014-05-01
    • 1970-01-01
    • 2021-01-08
    • 2022-07-25
    • 1970-01-01
    • 2018-08-08
    • 2021-09-11
    相关资源
    最近更新 更多