library(magrittr)
library(knitr)



code_tree <- cctu:::cctu_env$code_tree
root <- code_tree[1,1]

PATH <- gsub("\\\\ROOT$", "", root,perl=TRUE) 


code_tree %<>% within({
  parent %<>% gsub("\\\\","/",., fixed=TRUE) %>% gsub(PATH,"",  . ,fixed=TRUE)
  child %<>% gsub("\\\\","/",., fixed=TRUE) %>% gsub(PATH,"",  . ,fixed=TRUE)
})

graphcode <- function( edges, node, rootnode=TRUE){
  #edges is a data.frame with two columns: parent, child
  if(length(node)){
    children <-  subset(edges, parent==node)$child
    if(!rootnode){ output <- " child{ "}
    if(rootnode){ output <- "" }
    output <- c(output,  "node{ ", node,"} ")
    #if(rootnode){ output <- c(output, "[grow=right] ")}
    for( child in children){
      output <- c(output, Recall(edges, child, rootnode=FALSE))
    }
    if(!rootnode){ output <- c( output, " }")}
  } else{
    output <- ""
  }
  output
}



graph <- graphcode(code_tree, code_tree[1,1])
graph <- gsub("\\\\","/", graph)
graph <- gsub(PATH,"", graph)
graph <- gsub("_"," ", graph)
graph <- paste(c('\\',graph, ";"), collapse = "")
graph

#sibling distance=20em,

\begin{tikzpicture}[edge from parent fork right, level distance=20em, grow'=right, every node/.style = {shape=rectangle, rounded corners,draw, align=center, fill=white}] r knit_child(text=graph) \end{tikzpicture}



shug0131/cctu documentation built on Nov. 10, 2023, 12:03 p.m.