栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

用于代码的行探查器是否需要解析树,是否足够?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

用于代码的行探查器是否需要解析树,是否足够?

我想说的是,您需要一个解析树(和源)-您还怎么知道什么构成“行”和有效语句?

实际的简化可能是“语句分析器”而不是“线路分析器”。在R中,分析树很容易使用:

body(theFunction)
,因此在每个语句周围插入测量代码应该相当容易。通过更多的工作,您可以将其插入到属于同一行的一组语句周围。

在R中,从文件加载的函数主体通常还具有一个属性

srcref
,该属性列出了每个“行”(实际上是每个语句)的源:

这是一个示例函数(输入“ example.R”):

f <- function(x, y=3){    a <- 0; a <- 1  # Two statements on one line    a <- (x + 1) *  # One statement on two lines        (y + 2)    a <- "foo    bar"        # One string on two lines}

然后在R中:

source("example.R")dput(attr(body(theFunction), "srcref"))

哪个打印此行/列信息:

list(structure(c(2L, 1L, 2L, 1L, 1L, 1L, 2L, 2L), srcfile = <environment>, class = "srcref"),     structure(c(3L, 2L, 3L, 7L, 9L, 14L, 3L, 3L), srcfile = <environment>, class = "srcref"),     structure(c(3L, 10L, 3L, 15L, 17L, 22L, 3L, 3L), srcfile = <environment>, class = "srcref"),     structure(c(4L, 2L, 5L, 15L, 9L, 15L, 4L, 5L), srcfile = <environment>, class = "srcref"),     structure(c(7L, 2L, 8L, 6L, 9L, 20L, 7L, 8L), srcfile = <environment>, class = "srcref"))

如您所见(每个结构的最后两个数字是开始/结束行),表达式

a <- 0
a <- 1
映射到同一行…

祝好运!



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/669556.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号