Tas*_*han 18 eclipse dsl antlr parser-generator xtext
我刚刚遇到了非常好的工具Xtext来创建DSL以及IDE进行编辑.我在网上做了一些搜索,发现人们说它没有提供ANTLR的所有功能.我使用ANTLR作为我的解析器生成器.
我甚至不确定ANTLR的哪些功能我需要为我的语言编写完整的解析器,但ANTLR已经存在了很长时间,并且可能支持比Xtext更多的功能.
任何人都可以举一些不能在Xtext语法中指定的例子吗?
Seb*_*kow 21
您不能在Xtext语法中指定语义谓词.此外,不可能使用Xtext包含任意操作(读取:目标语言代码块).唯一受支持的目标平台是Java.
好消息是,Xtext通过引入这些约束获得了很大的好处,例如,您将获得一个允许序列化与您的语法匹配的任意模型/语法图形的大小写.说到语法图,使用Xtext,您将获得可以在IDE中编辑的语言的类型化AST.
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
Run Code Online (Sandbox Code Playgroud)
有关语法语言的更多详细信息,请查看Xtext文档.
| 归档时间: |
|
| 查看次数: |
4819 次 |
| 最近记录: |