Importante
Este pacote está em hibernação: inativo, embora eu possa revisitá -lo no futuro.
Enquanto isso, consulte o Flowr para suas necessidades de análise de código R.
O rstatic é um pacote que facilita a análise do código R. Estes são os princípios orientadores:
A semântica de referência facilita a transformação do código. Deseja fazer grandes transformações de código sem perder o controle de uma expressão importante? Referências você cobriu. Os objetos de código do RSTATTT têm a semântica de referência por meio de R6 .
O envio do método nos objetos de código facilita a compreensão dos algoritmos de descida recursiva. Isso é mais eficaz se o código for organizado em classes significativas e extensíveis. A hierarquia de classe de Rstatic é organizada de acordo com a semântica de R.
O acesso aos pais de um nó em uma árvore de sintaxe abstrata é útil para algumas análises. O rstatic mantém o controle dos pais de cada nó.
O acesso aos elementos de código pelo nome é mais claro que por índice. Preferimos escrever my_call$args[[2]] para acessar o segundo argumento de uma chamada que my_call[[3]] . O rstatic usa um conjunto consistente de nomes para elementos de código.
As árvores de sintaxe abstrata não são ideais para análises que precisam de informações de fluxo de controle e dados. O rstatic pode converter o código em um gráfico de fluxo de controle no formulário estático de atribuição única (SSA). O formulário SSA expõe os fluxos de dados, fornecendo a cada definição de variável um nome exclusivo.
Os pacotes CodeTools e CodEDendends usam os objetos de linguagem interna de R para extrair informações semelhantes do código. Eles podem ser mais apropriados para análises rápidas e ad-hoc.
O rstatic é instável e sob desenvolvimento ativo, por isso ainda não está disponível no Cran. Para instalar, abra um prompt de R e execute:
install.packages( " devtools " )
devtools :: install_github( " nick-ulle/rstatic " )O pacote inclui uma vinheta que serve como uma introdução. Para acessar a vinheta, abra um prompt de R e execute:
library( rstatic )
vignette( " rstatic-intro " )Veja a lista de tarefas.