posFlag需要什么样的编码?

时间:2015-01-18 07:51:27

标签: go static-analysis

如何将token.Position.String()返回的表单/pathto/file.go:40:32的位置编码为ParseQueryPos posFlag所需的/pathto/file.go:#550个参数,其{{1}}看起来像{{1}}。

为什么?

我使用Oracle工具进行静态分析。我需要运行Oracle.Query,这需要一个*QueryPos类型的参数。获取*QueryPos的唯一方法是使用ParseQueryPos

1 个答案:

答案 0 :(得分:1)

ParseQueryPos调用的

The source to tools/pos.go

// parsePosFlag parses a string of the form "file:pos" or
// file:start,end" where pos, start, end match #%d and represent byte
// offsets, and returns its components.

如果你真的必须从line:column字符串进行转换,那么你要查看文件内容并计算通往该行的字节(包括换行符):column。但是,由于您正在使用token.Position,看起来您可以从token.Position.Offset获得所需内容。