Title: | Evaluation of Unverified Code |
---|---|
Description: | The purpose of this package is to generate trees and validate unverified code. Trees are made by parsing a statement into a verification tree data structure. This will make it easy to port the statement into another language. Safe statement evaluations are done by executing the verification trees. |
Authors: | Numerious Inc. [cph, fnd], Trevor Olsen [aut, cre] |
Maintainer: | Trevor Olsen <[email protected]> |
License: | MIT + file LICENSE |
Version: | 0.0.1 |
Built: | 2024-11-27 06:42:55 UTC |
Source: | CRAN |
function will break text
into a list of lists.
create_tree( text, singular_operators = NULL, binary_operators = NULL, valid_functions = NULL )
create_tree( text, singular_operators = NULL, binary_operators = NULL, valid_functions = NULL )
text |
the string/code/statement you want to parse. |
singular_operators |
tokens of length 1 that operate on a right hand value. For example, the '-' token is an operator to negate a vector. |
binary_operators |
tokens of any length that operate on a left and right hand values. For example, the '+' token is an operator that adds a left vector to a right vector. |
valid_functions |
tokens of any length that are prefixed on a parenthesis block and specify a function to run on the provided parameters within the block. For example, the 'log' token will evaluate the logarithm value of the first parameter. Note named parameters are not support. |
See vignette("Overview", package = "evalR")
a list of lists. In other words, a tree data structure made from lists.
x <- create_tree("2 * (3 + 5)") str(x)
x <- create_tree("2 * (3 + 5)") str(x)
Safe alternative to using eval + parse
eval_text( text, singular_operators = NULL, binary_operators = NULL, valid_functions = NULL, map = NULL, mapping_names = NULL )
eval_text( text, singular_operators = NULL, binary_operators = NULL, valid_functions = NULL, map = NULL, mapping_names = NULL )
text |
the string/code/statement you want to parse. |
singular_operators |
tokens of length 1 that operate on a right hand value. For example, the '-' token is an operator to negate a vector. |
binary_operators |
tokens of any length that operate on a left and right hand values. For example, the '+' token is an operator that adds a left vector to a right vector. |
valid_functions |
tokens of any length that are prefixed on a parenthesis block and specify a function to run on the provided parameters within the block. For example, the 'log' token will evaluate the logarithm value of the first parameter. Note named parameters are not support. |
map |
a named list of data.frames/lists/matrices. Where names are keys for referencing the values in the |
mapping_names |
optional argument to make the function faster or limit which map elements can be referenced. |
See vignette("Overview", package = "evalR")
numeric or logical vector
eval_text("1 + 2") # using the map parameter map_obj <- list("#" = data.frame(x = 1:5, y = 5:1),"$" = list(z = -(1:5))) y <- evalR::eval_text("#x# + $z$", map=map_obj)
eval_text("1 + 2") # using the map parameter map_obj <- list("#" = data.frame(x = 1:5, y = 5:1),"$" = list(z = -(1:5))) y <- evalR::eval_text("#x# + $z$", map=map_obj)
Safe alternative to using eval + parse on some string that has already been converted into a tree.
eval_tree( tree, singular_operators = NULL, binary_operators = NULL, valid_functions = NULL, map = NULL, mapping_names = NULL )
eval_tree( tree, singular_operators = NULL, binary_operators = NULL, valid_functions = NULL, map = NULL, mapping_names = NULL )
tree |
the output object from create_tree |
singular_operators |
tokens of length 1 that operate on a right hand value. For example, the '-' token is an operator to negate a vector. |
binary_operators |
tokens of any length that operate on a left and right hand values. For example, the '+' token is an operator that adds a left vector to a right vector. |
valid_functions |
tokens of any length that are prefixed on a parenthesis block and specify a function to run on the provided parameters within the block. For example, the 'log' token will evaluate the logarithm value of the first parameter. Note named parameters are not support. |
map |
a named list of data.frames/lists/matrices. Where names are keys for referencing the values in the |
mapping_names |
optional argument to make the function faster or limit which map elements can be referenced. |
See vignette("Overview", package = "evalR")
numeric or logical vector
tree <- create_tree("1 + 2") eval_tree(tree)
tree <- create_tree("1 + 2") eval_tree(tree)
This function will search for the first block of parenthesis and return it if found. Otherwise, it will return "".
find_parenthesis(text)
find_parenthesis(text)
text |
the string/code/statement you want to parse. |
a substring. Either "" or the first parenthesis block.
# returns "" find_parenthesis("3 + 5") # returns "(3 + 5)" find_parenthesis("2 * (3 + 5)")
# returns "" find_parenthesis("3 + 5") # returns "(3 + 5)" find_parenthesis("2 * (3 + 5)")