通用技术 十一假期看了几天的 Antlr4 这本书,看下来也没理解这个工具的应用之处

杨漫步 · 2021年10月07日 · 最后由 eryi 回复于 2021年10月27日 · 505 次阅读

可能本身看的比较快吧,没有动手实践,看下来没有太多的感受,从专题来说领域特定语言的一种好用的工具,还需要深入理解下,和当前的测试领域看看是否可以进行结合。
欢迎加入讨论😀

共收到 5 条回复 时间 点赞

可以结合,而且结合点很多,主要看你是否有这方面的需求
简单举几个在工作中用到 antlr 的一些地方:

  • 文本结构化 Diff,通过 antlr 实现多语言通用支持
  • RPC 的 IDL 文件解析,用于实现一些类似 grpCurl 类型的工具
  • 程序(代码)分析(一般看情况,如果语言本身支持很好就不用自己写了)
    • 语法检查
    • 数据流分析
    • 抽象解释&符号执行
  • 测试领域的 DSL(目前来看这方面容易做,难推广)
  • 云测平台,云 IDE 相关都会有需要

👏 感兴趣于从结构化文本 xml 文件中匹配具备一些规则的结构文本部分数据的场景
意思是有一个 xml 文件,挺复杂,然后有一个片段,也是 xml,看是否这个片段结构能够匹配整体的 xml 文件,这个片段文件内容可能是不一样的,但是结构可以匹配这个 xml 文件。

eryi 回复

👏

eryi 回复

文本结构化 Diff,通过 antlr 实现多语言通用支持。 这个有什么地方有介绍的么

杨漫步 回复

结构化 diff 一般都是将文本解析到语法树,然后通过一些 tree node diff 算法来实现
然后你可以将语法节点本身作为树节点映射,也可以抽象一套通用的树节点,里面包含语法节点名称与值这两个属性,这样获得的结果就通用了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册