【发布时间】:2015-08-14 00:51:12
【问题描述】:
我想用 Xtext 解析 Xtext 语法。因此,我从GitHub 中获取了语法并对其进行了一些调整。除了导入语法和用“with”定义重用语法外,一切都很好。
所以当我创建一个应该被解析的 Xtext 文件时,例如:
grammar org.xtext.example.mydsl.Expression with org.eclipse.xtext.common.Terminals
import "http://www.xtext.org/example/mydsl/MyDsl" as mydsl
generate expression "http://www.xtext.org/example/mydsl/Expression"
我收到以下错误:
第 1 行:无法解析对语法“org.eclipse.xtext.common.Terminals”的引用。 (即使我将功能名称更改为根规则的 importURI 或 importNamespace 并使用同一工作区中定义的语法!)
第 3/4 行:无法解析对 EPackage 'http://www.xtext.org/example/mydsl/...' 的引用。
但是,我需要完整的语法来进行进一步的工作,这尤其包括重用的语法(例如终端、Xbase 或工作区中的任何其他语法),因为语法可能包含引用重用规则的规则。
有没有办法解决语法问题?我已经考虑过范围界定,但未能理解如何在我的案例中使用它。
顺便说一句,有没有办法解析文件扩展名 .xtext?我收到警告,两个内容解析器正在实现相同的文件扩展名,并且我的模型以正常的 Xtext 方式解析。有没有办法切换到我的内容解析器?
【问题讨论】:
标签: parsing grammar xtext cross-reference