【发布时间】:2019-12-19 12:17:44
【问题描述】:
我已经找到了将逻辑位置转换为物理位置的 resolveLocation() 函数。是否还有将物理位置转换为逻辑位置的功能?
在这种情况下,例如“|project://...”的位置将解析为“|java+class:///...”。 然后我就可以在 readFileLines() 函数中使用它了。
【问题讨论】:
标签: rascal
我已经找到了将逻辑位置转换为物理位置的 resolveLocation() 函数。是否还有将物理位置转换为逻辑位置的功能?
在这种情况下,例如“|project://...”的位置将解析为“|java+class:///...”。 然后我就可以在 readFileLines() 函数中使用它了。
【问题讨论】:
标签: rascal
您可以使用.declarations 字段在 m3 模型中查找双向映射:
data M3(
rel[loc name, loc src] declarations ...
从逻辑上查找物理:
mymodel.declarations[logicalURI]
反向查找要求您首先反转关系
mymodel.decls<src, name>[physicalURI]
顺便说一句,如果您的 m3 模型已“注册”,则 readFile 函数将为您解决问题,并且仅适用于任何 URi。默认情况下,注册是 createM3FromEclipseProject 函数的副作用。
【讨论】: