gpt4 book ai didi

java - 岛文法antlr3

转载 作者:行者123 更新时间:2023-11-30 06:38:10 24 4
gpt4 key购买 nike

antlr3中的“孤岛语法”是什么以及如何使用?

最佳答案

孤岛语法是一种将大部分语言视为一团文本(“水”)并挑选出感兴趣的语言部分以使用语法规则(“孤岛”)进行解析的语法。例如,您可能会选择构建一个孤岛语法来挑选出 C# 程序中的所有表达式,而忽略变量/方法/类声明和语句语法(if、while、...)。

真正的问题是,“你到底应该使用孤岛语法吗?”。

积极的好处:

  • 您不必为要处理的语言编写完整的语法。

缺点:

  • 挑选出感兴趣的来源部分并不总是那么容易。例如,你如何确保孤岛语法不会选取被注释掉的代码块,除非你的孤岛语法对所有注释进行了详细的词法分析?孤岛语法的目的是避免进入那种细节,但在这里你必须。

  • 你只能使用孤岛语法来关注你现在理解的问题。如果问题发生变化,那么您的岛屿语法可能也必须发生变化,而这并不总是那么容易。

  • 程序操作中最有趣的问题要求您不仅能够确定语法(例如,“解析”)并构建某种树来操作,而且您还能够确定符号。使用孤岛语法,你已经有效地取消了这样做的可能性(除非你想包括 block 、声明等的所有语法......哎呀突然它不是一个岛屿语法而是一个小大陆语法) .这确实限制了您的能力。

尽管我有偏见,但我从事此类工作已有很长时间了。我相信孤岛语法真的没那么有用。我提出的替代方案是基于共同基础的多种语言的摊销成本解析器,它称为 DMS Software Reengineering Toolkit .

YMMV.

关于java - 岛文法antlr3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2561249/

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