从函数中可靠地提取srclines和srcfile

时间:2015-04-14 23:23:17

标签: r function

我需要提取已解析的源的确切行以创建R函数,以用于coverage分析。 deparse不够准确,因为在使用包covr进行覆盖率分析时,确切的行号很重要。

如果有srcfile,我只需要文件名。如果没有,例如函数是在控制台中创建的,我需要创建一个等效的临时文件,该文件本来可以是该函数的源文件。

我看到了几个从函数中提取src信息的函数,比如getsrcFilenamegetSrcref,但没有专门用来获取源代码。

getSrclines看起来很有希望,但不会将函数作为参数。我尝试使用attributes来访问srcref并以这种方式获取信息,但似乎并未保持一致 - 显然我遗漏了一些东西。

有时 attributes(body(cover.fun))$srcfile有效,有时attributes(attributes(cover.fun)$srcref)$srcfile)有效,srcref本身我在srcfile$linessrcfile$original$lines找到了来源,当然这些看起来就像实验和不是实现这一目标的正确方法。

我需要使用source或交互式处理包中创建的函数的东西。如果文件名可用,那就是我所需要的,否则我需要源代码行。感谢

0 个答案:

没有答案