【发布时间】:2015-01-18 07:51:26
【问题描述】:
如何将token.Position.String() 返回的/pathto/file.go:40:32 表单的位置编码为ParseQueryPos 所需的posFlag 参数,看起来像/pathto/file.go:#550。
为什么?
我正在使用Oracle 工具进行一些静态分析。我需要运行Oracle.Query,它需要*QueryPos 类型的参数。获得*QueryPos 的唯一方法是使用ParseQueryPos。
【问题讨论】:
-
github.com/golang/tools/blob/master/oracle/pos.go#L28 说 #550 是字节偏移量,所以看起来你需要遍历文件,计算前 39 行中的字节数(包括分隔它们的换行符),然后添加 31 (假设 file.go:1:1 是字节 0)。
-
啊,还有
token.Position.Offset,所以你不必做所有这些!
标签: go static-analysis