
R/parse_text.R
parse_text.RdParse R instructions provided as a string and return the
expression if it is correct, or an object of class 'try-error' if it is an
incorrect code, or NA if the (last) instruction is incomplete.
parse_text(text, firstline = 1, srcfilename = NULL, encoding = "unknown")
parseText(text, firstline = 1, srcfilename = NULL, encoding = "unknown")The character string vector to parse into an R expression.
The index of first line being parsed in the file. If this is
larger than 1, empty lines are added in front of text in order to match
the correct position in the file.
A character string with the name of the source file.
Encoding of `text“, as in parse().
Returns an expression with the parsed code or NA if the last
instruction is correct but incomplete, or an object of class 'try-error' with
the error message if the code is incorrect.
On the contrary to parse(), parse_text() recovers from incorrect
code and also detects incomplete code. It is also easier to use in case you
pass a character string to it, because you don't have to name the argument
explicitly (text = ...).
parse_text("1 + 1")
#> expression(1 + 1)
parse_text("1 + 1; log(10)")
#> expression(1 + 1, log(10))
parse_text(c("1 + 1", "log(10)"))
#> expression(1 + 1, log(10))
# Incomplete instruction
parse_text("log(")
#> [1] NA
# Incomplete strings
parse_text("text <- \"some string")
#> [1] NA
parse_text("text <- 'some string")
#> [1] NA
# Incomplete names (don't write backtick quoted names on several lines!)
# ...but just in case
parse_text("`myvar")
#> [1] NA
# Incorrect expression
parse_text("log)")
#> [1] "1:4: unexpected ')'\n1: log)\n ^"
#> attr(,"class")
#> [1] "try-error"
#> attr(,"error")
#> <simpleError in "log)": 1:4: unexpected ')'
#> 1: log)
#> ^>