gpt4 book ai didi

eclipse - XText 没有提供哪些 ANTLR 功能?

转载 作者:行者123 更新时间:2023-12-03 13:31:02 25 4
gpt4 key购买 nike

我刚刚遇到了非常好的工具 Xtext 来创建 DSL 以及用于编辑的 IDE。我在网上做了一些搜索,发现有人说它不提供 ANTLR 的所有功能。我使用 ANTLR 作为我的解析器生成器。

我什至不确定要为我的语言编写完整的解析器需要 ANTLR 的哪些功能,但 ANTLR 已经存在了很长时间,并且可能支持比 Xtext 更多的功能。

谁能给出一些不能在 Xtext 语法中指定的例子?

最佳答案

您不能在 Xtext 语法中指定语义谓词。此外,不可能在 Xtext 中包含任意操作(阅读:目标语言代码块)。唯一受支持的目标平台是 Java。

好消息是,Xtext 通过引入这些约束获得了巨大的好处,例如你会得到一个反解析器,它允许序列化与你的语法匹配的任意模型/语法图。说到语法图,使用 Xtext,您将获得您的语言的类型化 AST,您可以在 IDE 中进行编辑。

Xtext 表示中唯一的语法特征是无序组。也就是说,您可以直接表示语法中的某些元素可能以任意顺序出现,但每个元素仅出现一次。如果您考虑 java 修饰符,这可能非常方便:

  visibility=('public'|'private') // this is a mandatory assignment
& abstractOrFinal=('abstract'|'final')? // this is optional
& static?='static'? // this will become a boolean value in your ast

看看 Xtext docs有关语法语言的更多详细信息。

关于eclipse - XText 没有提供哪些 ANTLR 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5904625/

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