【发布时间】:2014-06-12 03:30:12
【问题描述】:
我的问题是关于解析 R 语言中的表达式。让我直接进入一个例子:
fun_text <- c("
0 -> var
f1 <- function()
{
0 -> sum_var
sum_var2 = 0
sum_var3 <- 0
}
(function()
{
0 -> sum_var
sum_var2 = 0
sum_var3 <- 0
})->f2
f3 = function(x)
{
0 -> sum_var
sum_var2 = 0
sum_var3 <- 0
}
")
fun_tree <- parse(text=fun_text)
fun_tree
fun_tree[[1]]
fun_tree[[2]]
fun_tree[[3]]
fun_tree[[4]]
之后,我们得到这些结果:
expression(0 -> var, f1 <- function()
{
0 -> sum_var
sum_var2 = 0
sum_var3 <- 0
}, (function()
{
0 -> sum_var
sum_var2 = 0
sum_var3 <- 0
})->f2, f3 = function(x)
{
0 -> sum_var
sum_var2 = 0
sum_var3 <- 0
})
和
var <- 0
和
f1 <- function() {
sum_var <- 0
sum_var2 = 0
sum_var3 <- 0
}
和
f2 <- (function() {
sum_var <- 0
sum_var2 = 0
sum_var3 <- 0
})
和
f3 = function(x) {
sum_var <- 0
sum_var2 = 0
sum_var3 <- 0
}
如您所见,所有“->”赋值运算符都更改为“”案例吗?
【问题讨论】:
-
你试过询问 r-devel 邮件列表吗?他们可能对正在发生的事情有更好的了解。
-
只是出于兴趣,您检查
length(fun_tree)以确保那里没有更多“隐藏”吗? -
@ScottRitchie 我对这个建议不太满意——它导致了 StackOverflow 想要阻止的那种分裂。为什么这有关系?一方面,SO 比邮件列表更容易搜索(或者更确切地说,更容易找到)。
-
确实如此,我绝不是暗示不应该在这里问这个问题。我的意思是建议其他资源也可以咨询。
标签: r parsing abstract-syntax-tree assignment-operator