Parsing "->" Zuweisungsoperator in R

Meine Frage bezieht sich auf das Parsen von Ausdrücken in R-Sprache. Lassen Sie mich gleich auf ein Beispiel eingehen:

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]]

Danach erhalten wir diese Ergebnisse:

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
})

und

var <- 0

und

f1 <- function() {
    sum_var <- 0
    sum_var2 = 0
    sum_var3 <- 0
}

und

f2 <- (function() {
    sum_var <- 0
    sum_var2 = 0
    sum_var3 <- 0
})

und

f3 = function(x) {
    sum_var <- 0
    sum_var2 = 0
    sum_var3 <- 0
}

Wie Sie sehen, werden alle "->" Zuweisungsoperatoren in "<-" geändert, jedoch nicht im ersten Beispiel (nur "fun_tree"). Meine Frage ist: warum ist das so? und kann ich sicher sein, dass ich im Syntaxbaum immer den Operator "<-" erhalte, damit ich mich nicht die Mühe mache, den Fall "->" zu implementieren?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage