Description Usage Arguments Details Functions Examples
These function help identify and navigate noses associated with function definition.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | pd_is_function(id, pd, .check = TRUE)
pd_is_in_function(id, pd, .check = TRUE)
pd_get_function_body_id(id, pd, .check = TRUE)
pd_get_function_arg_ids(id, pd, .check = TRUE)
pd_get_function_arg_variable_ids(id, pd, .check = TRUE)
pd_get_function_arg_variable_text(id, pd, .check = TRUE)
pd_is_function_arg(id, pd, .check = TRUE)
pd_get_function_arg_associated_comment_ids(id, pd, .check = TRUE)
|
id |
id of the expression of interest |
pd |
The |
.check |
Perform checks for input validation? |
A function node is the node for the expression that has as it's children the function keyword(firstborn), the arguments, including the nodes representing the opening closing parentheses in the definition, and finally a node, as the youngest, for the body of the function.
pd_is_function
: Test if the id
points to a function.
pd_is_in_function
: test if a node is contained in a function definition.
pd_get_function_body_id
: Obtain the body of a function
pd_get_function_arg_ids
: Obtain the ids for the arguments of a function
pd_get_function_arg_variable_ids
: Retrieve the variable for a function argument
pd_get_function_arg_variable_text
: Get the variable names for a function definition.
pd_is_function_arg
: is id
a function argument?
pd_get_function_arg_associated_comment_ids
: Retrieve relative documentation comments associated with function arguments.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | # load example file and get_parse data
ex.file <- system.file("examples", "example.R", package="parsetools")
exprs <- parse(ex.file, keep.source = TRUE)
pd <- get_parse_data(exprs)
# There are 3 expressions so there should be three roots.
sum(pd_is_root(pd$id, pd))
roots <- pd_all_root_ids(pd)
function.id <- pd_get_assign_value_id(roots[[1]], pd)
pd_is_function(function.id, pd)
length(function.kids <- pd_get_children_ids(function.id, pd))
# function nodes have many because it contains
# 1. the function keyword.
# 2. the parentheses '(' and ')'
# 3. each argument name plus the equals sign and value, if given.
# 4. and finally, and expr node for the function body.
pd_token(function.kids, pd)
# even though there are only two argument since each has
# a default value given there are 6 total nodes that
# return true as function arguments, care is needed when
# dealing with function arguments.
pd_is_function_arg(function.kids, pd)
pd_get_function_arg_ids(function.id, pd)
# A simple way to identify the argument names is
pd_get_function_arg_variable_text(function.id, pd)
# To identify the function body node.
pd_get_function_body_id(function.id, pd)
|
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.