- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我刚刚遇到了非常好的工具 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
关于eclipse - XText 没有提供哪些 ANTLR 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5904625/
如何在 xtext 中更改生成包的默认位置? 例如:src-gen包和xtend-gen。 在这些包中生成了各种子包。那么如何更改默认生成位置。 最佳答案 如何修改src-gen位置 打开Genera
我的 Xtext 语法中有一个终端列表,我如何测试它们是否工作并且没有 token 冲突? 例如以下终端: terminal COMMA: ','; terminal QUESTION: '?'; t
我尝试为配置文件编写 Xtext BNF(以 .ini 为扩展名) 例如,我想成功解析 [Section1] a = Easy123 b = This *is* valid too [Section_
我通过 Xtext 创建了一个 DSL,现在我需要将编辑器中创建的模型转换为另一个模型。我想最直接的方法是使用某种 M2M 转换框架,但我需要访问文本文件背后的模型。 问题:如何获得对模型的引用? 最
我正在研究使用 xtext 开发的 DSL。我正在使用 orion 编辑器使用自动完成功能。它与自动生成的网页编辑器配合得很好。但是,我们想将它与另一个使用 Angular 4 开发的 Web 应用程
所有这些以 X 开头的基于 Eclipse 的技术(Xtext、Xtend)的特点、区别和相似之处是什么?还有更多要了解的吗? 最佳答案 Xtext 是一个用于开发编程语言和领域特定语言的文本建模框架
同时尝试 mavenize Eclipse plugin for LESS遇到问题 #210 在 #208 中添加了提交 https://github.com/PaulVI/ow/commit/7c9
构建一个解析文件的独立程序,我使用了第一个选项 http://www.davehofmann.de/?p=101 定义了一个验证,如果文本不是以大写字母开头,则会给出错误(eclipse 中的红色下划
Xtext 文档,例如这里:http://www.eclipse.org/Xtext/documentation.html#syntax似乎只是通过举一个“悬空其他问题”的例子来解释句法谓词。我对此的
我使用 Eclipse 的 Xtext 插件来定义我的语言并从中生成一些文件。 该项目很大,除了插件生成的默认生成器之外,我想使用多个生成器来生成我的文件。 我试过这个解决方案http://www.e
我一直在为我们内部使用的语言开发基于 Xtext 的 Eclipse 插件。这种语言可能有以下形式的声明: run : /some/file/path/foo.txt ...最终我想提供一个自定义位置
我正在尝试编写一个 xtext 规则,我可以在其中以不同的随机顺序编写语句,但所有语句都必须保存为一个列表。 我试过: Root: ( (entity += Entity)? & (componen
我正在尝试编写一个 xtext 规则,我可以在其中以不同的随机顺序编写语句,但所有语句都必须保存为一个列表。 我试过: Root: ( (entity += Entity)? & (componen
我想重用语法定义。 我有这样的语法: Person: 'contact' name=ID '{' 'phone' phone=INT '}' ; 我想要另一个这样的语法: includ
我有一个使用 Xtext 编写的 DSL。我想要的是执行那个 DSL 来执行一些好的事情。 我在 xtend 中编写了实现接口(interface) IGenerator 的 myDslGenerat
我目前正在开发一种通用的基于代理的编程语言(它的语法会受到 Java 的启发,我们也在这种语言中使用对象)。 自项目开始以来,我们对使用 ANTLR 的事实持怀疑态度。或 Xtext .那时我们发现
我在 xtext 交叉引用方面遇到了一些问题这是一个非常简单的语法: grammar org.xtext.example.mydsl1.Test with org.eclipse.xtext.comm
我正在尝试修改 Xtext 域模型示例,以便实体属性可以有两个以上的属性(除了已经包含在示例中的“许多”之外)。所有属性都必须是可选的,并且它们的顺序无关紧要。看来,无论我做什么,第一个属性都必须是第
我正在使用xtext 2.4并且想要同时支持map和set,我的语法如下 ::- ::- | ::- '{' ( ':' (',' ':' )*)? '}' ::- '{' ( (
我需要验证 Xtext 项目中特定文件的存在。该文件具有与验证对象类似的路径,但具有其他根目录,例如: $projPath/src/dir1/dir2/ValidatedFile.src $projP
我是一名优秀的程序员,十分优秀!