我对导入全局范围的工作方式感到非常迷茫。我正在为结构良好的语言编写带有 xtext 的解析器,我不能依赖工作空间或项目概念。在我的语言中,我包含可以具有另一个文件的相对或绝对路径的语句。我需要能够引用在这个其他文件中定义的对象。我尝试使用 importURI 但它不起作用。我所尝试的只是添加这条规则:
Include:
'INCLUDE' '=' importURI=STRING ';'
;
并在这些部分更改了 MWE2 文件:
// scoping and exporting API
fragment = scoping.ImportURIScopingFragment {}
// fragment = exporting.SimpleNamesFragment {}
// scoping and exporting API
fragment = scoping.ImportNamespacesScopingFragment {}
fragment = exporting.QualifiedNamesFragment {}
但这对我的编辑器没有任何影响。我仍然可以在没有包含语句的情况下引用每个具有相同扩展名的文件中定义的对象,并且我仍然不能包含项目之外的文件。