【发布时间】:2019-06-03 23:13:28
【问题描述】:
我想调用另一个文件中声明的变量。 文件的包含是使用交叉引用完成的。以及声明的调用。这是语法:
Script:
includes+=(Include)* assignments+=(Assignment)* g=GetLog? clock=Clock? tests+=Test*
;
Assignment:
Config |Cosem ;
Include:
'INCLUDE' includedScript=[Script|STRING];
Cosem:
name=ID '=' 'COSEM' '(' classid=INT ',' version=INT ',' obis=STRING ')' ;
AttributeRef:
name=[Cosem] "." attributeRef =IDValue
;
声明是Cosem 规则。
从文档中我了解到我必须在 IResourceDescription 中做一些事情,但我不知道具体是什么
编辑
public class MyDslQNP extends DefaultDeclarativeQualifiedNameProvider {
QualifiedName qualifiedName(Script script) {
return QualifiedName.create(script.eResource().getURI().trimFileExtension().lastSegment(), script.eResource().getURI().fileExtension());
}
}
【问题讨论】:
-
哪个不工作?属性参考?如果是,范围界定是您正在寻找的
-
包含规则包括包含 Cosem 声明的文件。但是,这些声明不能从“主”文件中访问
-
这是你的完整语法吗?如果是,您的名称提供者是什么样的
-
我编辑了问题