getParseData
位于 utils
包(package)。 说明
如果"keep.source"
选项是TRUE
,R的解析器将附加其解析的对象的详细信息。这些函数检索该信息。
用法
getParseData(x, includeText = NA)
getParseText(parseData, id)
参数
x |
从 |
includeText |
逻辑性;是否在结果中包含已解析项目的文本 |
parseData |
从 |
id |
要检索其文本的项目标识符向量 |
细节
在 3.0.0 版本中,R解析器被修改为包含 Romain Francois 在他的文章中编写的代码parser
包。这将构建有关解析代码中每个标记和更高级别构造的详细信息表。该表存储在srcfile
与解析代码中的源引用相关联的记录,并由getParseData
函数。
值
为了getParseData
:
如果解析数据不存在,NULL
。否则返回一个 DataFrame ,包含以下列:
line1 |
整数。项目开始的行号。这是 |
col1 |
整数。项目开始的列号。第一个字符是第 1 列。这对应于 |
line2 |
整数。项目结束的行号。 |
col2 |
整数。项目结束处的列号。 |
id |
整数。与该项目关联的标识符。 |
parent |
整数。该项目的父项的 |
token |
字符串。令牌的类型。 |
terminal |
合乎逻辑的。标记是否是“terminal”,即解析树中的叶子。 |
text |
字符串。如果 |
DataFrame 的行名称将等于 id
值,并且 DataFrame 将具有 "srcfile"
属性,其中包含所使用的 srcfile
记录。这些行将按源文件中的起始位置排序,父项出现在其子项之前。
为了getParseText
:
长度相同的字符向量id
包含关联的文本项。如果它们不包含在parseData
,将从原始文件中检索它们。
注意
getParseData
返回的结果与原始 parser
代码返回的结果存在许多差异:
-
保留的列较少。
-
不返回内部令牌编号。
-
col1
从 1 开始计数,而不是从 0 开始计数。 -
id
值不会附加到解析树的元素,它们仅保留在getParseData
返回的表中。 -
#line
指令被识别,但其他注释标记(例如,roxygen
注释)未被识别。
按设计解析数据探索解析器实现的细节,这些细节如有更改,恕不另行通知。对解析数据进行计算的应用程序可能需要每个 R 版本的更新。
例子
fn <- function(x) {
x + 1 # A comment, kept as part of the source
}
d <- getParseData(fn)
if (!is.null(d)) {
plus <- which(d$token == "'+'")
sum <- d$parent[plus]
print(d[as.character(sum),])
print(getParseText(d, sum))
}
作者
Duncan Murdoch
参考
Romain Francois (2012). parser: Detailed R source code parser. R package version 0.0-16. https://github.com/halpo/parser.
也可以看看
相关用法
- R getFromNamespace 用于开发命名空间的实用函数
- R getS3method 获取 S3 方法
- R getWindowsHandles 在 MS Windows RGui 中获取 Windows 句柄
- R getWindowsHandle 获取 Windows 句柄
- R getAnywhere 检索 R 对象,包括从命名空间检索
- R glob2rx 将通配符或通配符模式更改为正则表达式
- R globalVariables 检查包时使用的声明
- R select.list 从列表中选择项目
- R COMPILE 编译用于 R 的文件
- R readRegistry 读取 Windows 注册表配置单元
- R browseVignettes 在 HTML 浏览器中列出晕影
- R hasName 检查姓名
- R nsl 按主机名查找 IP 地址
- R edit 调用文本编辑器
- R create.post 准备电子邮件和帖子的辅助函数
- R hsearch-utils 帮助搜索实用程序
- R download.packages 从类似 CRAN 的存储库下载软件包
- R DLL.version MS Windows 上的 DLL 版本信息
- R ls.str 列表对象及其结构
- R Rscript R 前端脚本
- R bug.report 发送错误报告
- R PkgUtils 用于构建和检查附加包的实用程序
- R cite 引用参考书目条目
- R SweaveSyntConv 转换 Sweave 语法
- R RSiteSearch 搜索文档中的关键词或短语
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Get Detailed Parse Information from Object。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。