parse returns the parsed but unevaluated expressions in a
parse(file = "", n = NULL, text = NULL, prompt = "?",
keep.source = getOption("keep.source"), srcfile,
encoding = "unknown")
a connection, or a character string giving the name of a
file or a URL to read the expressions from.
text is missing or
then input is taken from the console.
integer (or coerced to integer). The maximum number of
expressions to parse. If
NULL or negative or
NA the input is parsed in its entirety.
character vector. The text to parse. Elements are treated
as if they were lines of a file. Other R objects will be coerced
to character if possible.
the prompt to print when parsing from the keyboard.
NULL means to use R's prompt,
a logical value; if
source reference information.
NULL, a character vector, or a
srcfile object. See the ‘Details’ section.
encoding to be assumed for input strings. If the
"UTF-8" it is used to mark
character strings as known to be in Latin-1 or UTF-8: it is not used
to re-encode the input. To do the latter, specify the encoding as
part of the connection
con or via
options(encoding=): see the example under
ValueAn object of type
"expression", with up to
elements if specified as a non-negative integer. When
srcfile is non-
will be attached to the result containing a list of
srcref records corresponding to each element, a
"srcfile" attribute will be attached containing a copy of
srcfile, and a
"wholeSrcref" attribute will be
attached containing a
srcref record corresponding to
all of the parsed text. Detailed parse information will be stored in
"srcfile" attribute, to be retrieved by
getParseData. A syntax error (including an incomplete expression) will throw an error. Character strings in the result will have a declared encoding if
"UTF-8", or if
text is supplied with every element of known encoding in a
Latin-1 or UTF-8 locale.
Partial parsingWhen a syntax error occurs during parsing,
signals an error. The partial parse data will be stored in the
srcfile argument if it is a
text argument was used to supply the text. In other
cases it will be lost when the error is triggered. The partial parse data can be retrieved using
getParseData applied to the
Because parsing was incomplete, it will typically include references
"parent" entries that are not present.
text has length greater than zero (after coercion) it is used in
file. All versions of R accept input from a connection with end of line
marked by LF (as used on Unix), CRLF (as used on DOS/Windows)
or CR (as used on classic Mac OS). The final line can be incomplete,
that is missing the final EOL marker. When input is taken from the console,
n = NULL is equivalent to
n = 1, and
n < 0 will read until an EOF character is
read. (The EOF character is Ctrl-Z for the Windows front-ends.) The
line-length limit is 4095 bytes when reading from the console (which
may impose a lower limit: see ‘An Introduction to R’). The default for
srcfile is set as follows. If
keep.source is not
defaults to a character string, either
"<text>" or one
text is used,
srcfile will be set to a
srcfilecopy containing the text. If a character
string is used for
referring to that file will be used. When
srcfile is a character string, error messages will
include the name, but source reference information will not be added
to the result. When
srcfile is a
object, source reference information will be retained.
cat("x <- c(1, 4)\n x ^ 3 -10 ; outer(1:7, 5:9)\n", file = "xyz.Rdmped")
# parse 3 statements from the file "xyz.Rdmped"
parse(file = "xyz.Rdmped", n = 3)
# A partial parse with a syntax error
txt <- "
x <- 1
sf <- srcfile("txt")
try(parse(text = txt, srcfile = sf))