gpt4 book ai didi

perl - 解析相同语法的不同文件并计算文件到文件的相似性

转载 作者:行者123 更新时间:2023-12-04 06:27:35 25 4
gpt4 key购买 nike

我有一堆 ACPI 源语言文件,我想计算它们之间的文件到文件的相似性。我想使用像 Perl 的 Parse::RecDescent 这样的东西
但我被困在:

1) 将 ACPI 语法 (www.acpi.info/DOWNLOADS/ACPIspec40a.pdf) 翻译成 Parse::RecDescent 会理解的东西
2) 有一个度量来比较 2 个解析文件

有任何想法吗?

最佳答案

所以你有两个问题:

  • 解析 ACPI 以构建 AST。这通常会带来麻烦,即确保您有一个定义良好的语法,您的解析机器可以根据该语法进行解析(通常您必须弯曲一个好的语法定义以使解析机器能够处理它),并构建相应的 AST . Perl 解析机器会遇到这些麻烦,仅仅因为它是一个解析引擎。
  • 比较 AST 的结构并得出合理的答案。您可能会在这里找到一些文献,粗略地描述了如何做到这一点(使用例如 Levenshtein distance ),但 AST 的细节很重要。 ( Change distilling: Tree differencing for fine-grained source code change extraction 最后,确定了距离后,您需要以某种可读形式打印出增量。

  • 但是,AFAIK,我的公司是唯一一家将其付诸实践的公司。查看我们的 Smart Differencer工具。 SmartDifferencers 解析、构建 AST 并根据通过一致标识符替换移动、插入、删除、替换或修改的 AST 元素来报告更改器。它们依赖于任何底层的非常强大的 GLR 解析引擎,最大限度地减少了接受新语法的问题。它们适用于许多通用语言,但目前不适用于 ACPI。

    关于perl - 解析相同语法的不同文件并计算文件到文件的相似性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5857095/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com