【问题标题】:Resolve a physical location to a logical location将物理位置解析为逻辑位置
【发布时间】:2019-12-19 12:17:44
【问题描述】:

我已经找到了将逻辑位置转换为物理位置的 resolveLocation() 函数。是否还有将物理位置转换为逻辑位置的功能?

在这种情况下,例如“|project://...”的位置将解析为“|java+class:///...”。 然后我就可以在 readFileLines() 函数中使用它了。

【问题讨论】:

    标签: rascal


    【解决方案1】:

    您可以使用.declarations 字段在 m3 模型中查找双向映射:

    data M3(
        rel[loc name, loc src] declarations ...
    

    从逻辑上查找物理:

    mymodel.declarations[logicalURI]
    

    反向查找要求您首先反转关系

    mymodel.decls<src, name>[physicalURI]
    

    顺便说一句,如果您的 m3 模型已“注册”,则 readFile 函数将为您解决问题,并且仅适用于任何 URi。默认情况下,注册是 createM3FromEclipseProject 函数的副作用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-09
      相关资源
      最近更新 更多