kdb/q-按位置获取表达式到其包含的源代码字符串?

kdb/q-按位置获取表达式到其包含的源代码字符串?,kdb,Kdb,我正在使用Q的新的.Q.trp,以及出现错误时提供的调试对象。 据我所见,debug对象包含发生错误的源代码的字符串表示形式,以及触发错误的字符串中的偏移量 比如说, { something: 123; x: 123; ThisThrowsAnError[456;789]; y: 123; }[] 当执行上述代码时,调试对象将在其实体中包含此代码,以及指向ThisThrowsAnError[]的偏移量 我的问题是——基于这些信息,我如何提取导致错误的整个语句? 例如,在上面的示例中,我

我正在使用Q的新的.Q.trp,以及出现错误时提供的调试对象。 据我所见,debug对象包含发生错误的源代码的字符串表示形式,以及触发错误的字符串中的偏移量

比如说,

{
  something: 123;
  x: 123; ThisThrowsAnError[456;789]; y: 123;
}[]
当执行上述代码时,调试对象将在其实体中包含此代码,以及指向ThisThrowsAnError[]的偏移量

我的问题是——基于这些信息,我如何提取导致错误的整个语句? 例如,在上面的示例中,我想提取“ThisThorwsAnError[456;789]”

到目前为止我想到的事情

  • 从偏移量提取字符串,直到行尾。但不起作用,因为同一行中可能有其他语句(例如上面的“y:123”)

  • 解析源代码(字面意思是“Parse”)。那又怎么样。。?输出可以是任何内容(例如lambda或语句列表),然后它仍然需要以某种方式映射回源位置


感谢你的任何想法!谢谢,我不需要解决这个问题,但我会扫描各种括号结构的函数定义计数深度(例如,
{[(
),然后在同一嵌套级别上查找偏移右侧的第一个
)@pamphlet谢谢-没有找到一个非常简单的方法,因为您还需要处理字符串中出现的符号等,但看起来这可能仍然是最好的方法。我尝试解析函数的字节码,但遇到了这样的情况:太复杂,无法合理轻松地处理。p.加上内部转义引号字符串,注释中的任何内容…这都是非常重要的。一些项目可能会有所帮助。特别是,各种分析器可能有一些很好的解析想法。