Importante
Este paquete está en hibernación: inactivo, aunque podría volver a visitarlo en el futuro.
Mientras tanto, consulte FlowR para sus necesidades de análisis de código R.
Rstatic es un paquete que hace que sea más fácil analizar el código R. Estos son los principios rectores:
La semántica de referencia hace que el código sea más fácil de transformar. ¿Quiere hacer transformaciones de código importantes sin perder el rastro de una expresión importante? Referencias que ha cubierto. Los objetos de código de Rstatic tienen semántica de referencia a modo de R6 .
El envío del método en los objetos de código hace que los algoritmos de descenso recursivos sean más fáciles de entender. Esto es más efectivo si el código se organiza en clases significativas y extensibles. La jerarquía de clase de Rstatic se organiza de acuerdo con la semántica de R.
El acceso al padre de un nodo en un árbol de sintaxis abstracta es útil para algunos análisis. Rstatic realiza un seguimiento transparente de los padres de cada nodo.
El acceso a los elementos del código por nombre es más claro que por índice. Preferimos escribir my_call$args[[2]] para acceder al segundo argumento de una llamada que my_call[[3]] . Rstatic utiliza un conjunto consistente de nombres para elementos de código.
Los árboles de sintaxis abstractos no son ideales para análisis que necesitan información de control y flujo de datos. rstatic puede convertir el código en un gráfico de flujo de control en forma de asignación única estática (SSA). El formulario SSA expone los flujos de datos al dar a cada definición de variable un nombre único.
Los paquetes de Codetools y CodeDependen los objetos de lenguaje incorporados de R para extraer información similar del código. Pueden ser más apropiados para análisis rápidos y ad-hoc.
Rstatic es inestable y está bajo desarrollo activo, por lo que aún no está disponible en CRAN. Para instalar, abra un indicador R y ejecute:
install.packages( " devtools " )
devtools :: install_github( " nick-ulle/rstatic " )El paquete incluye una viñeta que sirve como introducción. Para acceder a la viñeta, abra una solicitud R y ejecute:
library( rstatic )
vignette( " rstatic-intro " )Vea la lista de tareas pendientes.