从多个文件中提取模板(模式检测)

时间:2013-02-14 14:34:56

标签: c# code-generation

在C#(Visual Studio)中提供解决方案时,我需要检测一些模板后面的类并提取该模板以便以后生成代码。

换句话说,我需要比较2个类(文件)并从中提取一个通用模板。 当程序员必须编写更少的代码时,该模板将用于以后的代码生成。

是否有任何机构可以就如何做到这一点给我一个想法?

还有一个问题,是否有可能获得Visual Studio的语法/语义树?

TNX

2 个答案:

答案 0 :(得分:0)

对于第一个问题,我认为你应该研究差异算法来找到2个文本文件的公共部分,例如: here

对于第二个问题,我建议您查看Roslyn

答案 1 :(得分:0)

最后我是用户

  • NRefactory用于编译代码,我获得了AST。
  • 使用自定义标签(eq:for - > loop_start)
  • 重写代码
  • 展平树,获得一个长标签数组(例如:class_start,method_start,... end,end)
    这是2个文件
  • 我使用“贪婪的字符串平铺算法”
  • 比较了2个数组
  • 从这里我已经有了模板文件。