- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
antlr3中的“孤岛语法”是什么以及如何使用?
最佳答案
孤岛语法是一种将大部分语言视为一团文本(“水”)并挑选出感兴趣的语言部分以使用语法规则(“孤岛”)进行解析的语法。例如,您可能会选择构建一个孤岛语法来挑选出 C# 程序中的所有表达式,而忽略变量/方法/类声明和语句语法(if、while、...)。
真正的问题是,“你到底应该使用孤岛语法吗?”。
积极的好处:
缺点:
挑选出感兴趣的来源部分并不总是那么容易。例如,你如何确保孤岛语法不会选取被注释掉的代码块,除非你的孤岛语法对所有注释进行了详细的词法分析?孤岛语法的目的是避免进入那种细节,但在这里你必须。
你只能使用孤岛语法来关注你现在理解的问题。如果问题发生变化,那么您的岛屿语法可能也必须发生变化,而这并不总是那么容易。
程序操作中最有趣的问题要求您不仅能够确定语法(例如,“解析”)并构建某种树来操作,而且您还能够确定符号。使用孤岛语法,你已经有效地取消了这样做的可能性(除非你想包括 block 、声明等的所有语法......哎呀突然它不是一个岛屿语法而是一个小大陆语法) .这确实限制了您的能力。
尽管我有偏见,但我从事此类工作已有很长时间了。我相信孤岛语法真的没那么有用。我提出的替代方案是基于共同基础的多种语言的摊销成本解析器,它称为 DMS Software Reengineering Toolkit .
YMMV.
关于java - 岛文法antlr3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2561249/
我是不是对 lambda 不了解?或者 GetValue() 我试图传递的变量是空的。最好为此创建一个 global palletNumberText 吗?在 createWidgets() 中,我绑
我是一名优秀的程序员,十分优秀!