首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >孤岛语法antlr3

孤岛语法antlr3
EN

Stack Overflow用户
提问于 2010-04-01 22:51:00
回答 2查看 1.4K关注 0票数 2

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

EN

回答 2

Stack Overflow用户

发布于 2010-04-02 23:30:30

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

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

积极的好处:

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

缺点:

  • 要找出感兴趣的部分并不总是那么容易。例如,你如何确保海岛语法不会拾取被注释掉的代码块,除非你的海岛语法详细地分析了所有的注释?孤岛语法的要点是为了避免进入这种细节,但在这里你必须这样做。
  • 你只能使用孤岛语法来专注于你现在理解的问题。
  • 程序操作中最有趣的问题要求您不仅能够确定语法(例如,“解析”)并构建某种类型的树来进行操作,而且您还能够确定符号的含义。使用孤岛语法,您已经有效地排除了这样做的可能性(除非您想包含块、声明等的所有语法……哦,突然间,它不是一个孤岛语法,而是一个小洲语法)。这真的限制了你的能力。

可以说我有偏见,但我做这种事情已经很长时间了。我相信I语法真的没那么有用。我提出的另一种选择是基于共同基础的、适用于多种语言的摊余成本解析器,它被称为DMS Software Reengineering Toolkit

YMMV.

票数 4
EN

Stack Overflow用户

发布于 2010-04-01 22:52:37

好吧,我不确定你到底是什么意思,但既然你到目前为止还没有提到你写的东西,我就从这里开始:

http://www.antlr.org/wiki/display/ANTLR3/Island+Grammars+Under+Parser+Control

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2561249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档