@@ -33,24 +33,19 @@ get_code_dependency <- function(code, names, check_names = TRUE) {
3333 return (code )
3434 }
3535
36+ graph <- lapply(code , attr , " dependency" )
37+
3638 if (check_names ) {
37- # Detect if names are actually in code.
38- parsed_code <- parse(text = trimws(code ), keep.source = TRUE )
39- pd <- normalize_pd(utils :: getParseData(parsed_code ))
40- symbols <- pd [pd $ token == " SYMBOL" , " text" ]
41- if (any(pd $ text == " assign" )) {
42- calls_pd <- extract_calls(pd )
43- assign_calls <- Filter(function (call ) find_call(call , " assign" ), calls_pd )
44- ass_str <- unlist(lapply(assign_calls , function (call ) call [call $ token == " STR_CONST" , " text" ]))
45- ass_str <- gsub(" ^['\" ]|['\" ]$" , " " , ass_str )
46- symbols <- c(ass_str , symbols )
47- }
39+ symbols <- unlist(lapply(graph , function (call ) {
40+ ind <- match(" <-" , call , nomatch = length(call ) + 1L )
41+ call [seq_len(ind - 1L )]
42+ }))
43+
4844 if (! all(names %in% unique(symbols ))) {
4945 warning(" Object(s) not found in code: " , toString(setdiff(names , symbols )))
5046 }
5147 }
5248
53- graph <- lapply(code , attr , " dependency" )
5449 ind <- unlist(lapply(names , function (x ) graph_parser(x , graph )))
5550
5651 lib_ind <- detect_libraries(graph )
0 commit comments