![]() |
1
1
即使不使用Eclipse本身,也可以使用Eclipse的比较API。 搜索 org.eclipse.compare比较 |
![]() |
2
1
我不知道这是否能帮助您,但是Eclipse中的diff/compare在它的顶部面板(下面是并排的两个文件/版本)中做到了这一点。是的,图形化的,但是也许在那里有一个“公共”使用的API? |
![]() |
3
0
不知道它是否在其他地方实现。 但你是对的,你需要一个AST来决定 方法体是什么,但您还需要名称和类型解析 +调用关系图以确定两个名为sam的方法实际上是否在同一类中 因此是彼此的“版本”。 我们的DMS软件再工程工具包有Java解析器和构造 名称/类型解析和完整的调用图,因此可以使用它来确定 “方法匹配”。(当然,你可能会作弊,然后决定 如果方法名相同,它们必须是变量, 但是你会在布景等方面得到很多误报。 如果你经常这样做的话,那些误报会是 非常分散注意力)。 在决定了哪些“匹配”之后,他们的文本可能会被替换。 如果要比较大量的API文件,这将非常有用。 另一种选择是将sd的“smart diff”应用于对 您知道的Java文件是原始的和已更改的版本。 它比较AST并找到最小的编辑 把一个映射到另一个。如果旧方法和新方法完全相似, 它将发现这一点,并告诉您如何编辑一个以获取另一个。 见 http://www.semdesigns.com/Products/SmartDifferencer/index.html |
![]() |
JCN · 要创建编译器,是否必须生成AST? 7 年前 |
![]() |
Song Wukong · yacc:如何“保存”代码以备将来执行? 7 年前 |
![]() |
Bailey Parker · 使用ppx\U驱动程序进行AST转换(使用ocaml\U current\U AST进行register\U transformation\u)有什么好的用法示例吗? 7 年前 |
![]() |
tekknolagi · 模式匹配中的OCaml多态变体 7 年前 |