方法位置中的偏移

  • 本文关键字:位置 方法 rascal
  • 更新时间 :
  • 英文 :


我有一个位置 |project://SmallSQL/src/smallsql/database/SQLParser.java|(10257,10257,<305,60>,<371,5>) .

但是,由于行final class SQLParser {似乎位于第 39 行,因此偏移量为 38,这意味着第 305 行实际上是指第 343 行(以及 371 到 309)。我希望看到这种偏移反映在位置上。这可能吗,如果可能,如何?如果没有,我如何自己计算偏移量?

此外,起跑线也可以在另一个位置,例如当 doc 出现在课程之前时。例如在|project://SmallSQL/src/smallsql/database/ExpressionFunctionBitLen.java|(302,302,<11,25>,<13,2>).

附录:我正在使用的位置是通过转换建立的,即|java+class:///smallqsl/database/SQLParser|(10257,10257,<305,60>,<371,5>)转换为 |project://SmallSQL/src/smallsql/database/SQLParser.java|(10257,10257,<305,60>,<371,5>) .

如果您使用 IO 模块中的resolveLocation,偏移量将相应地自动更改。

您也可以通过直接在M3@declarations表中查找正确的位置来自己进行分辨率。

resolvedLoc = myM3Model@declarations[myLogicalLocation];

最新更新