Важный
Этот пакет находится в спячке: неактивно, хотя я мог бы вернуться к нему в будущем.
В то же время, проверьте Flowr для ваших потребностей в анализе кода R.
Rstatic - это пакет, который облегчает анализ кода R. Это руководящие принципы:
Справочная семантика облегчает преобразование кода. Хотите сделать основные преобразования кода, не теряя отслеживания важного выражения? Ссылки вы освещали. Объекты кода Rstatic имеют справочную семантику с помощью R6 .
Отправка метода на кодовых объектах облегчает понимание алгоритмов рекурсивного спуска. Это более эффективно, если код организован в значимые, расширяемые классы. Классовая иерархия Rstatic расположена в соответствии с семантикой R.
Доступ к родителю узла в абстрактном синтаксисном дереве полезен для некоторых анализов. Прозрачно отслеживает родителей каждого узла.
Доступ к элементам кода по имени ясен, чем по индексу. Мы бы предпочли написать my_call$args[[2]] чтобы получить доступ к второму аргументу вызова, чем my_call[[3]] . Rstatic использует последовательный набор имен для элементов кода.
Аннотация синтаксисные деревья не идеальны для анализа, которые нуждаются в информации о контроле и потоке данных. RSTATIC может преобразовать код в график потока управления в форме статического отдельного назначения (SSA). Форма SSA обнажает потоки данных, давая каждой переменной определению уникальное имя.
В пакетах Codetools и CodeDepends используются встроенные языковые объекты R для извлечения аналогичной информации из кода. Они могут быть более подходящими для быстрого, специального анализа.
Rstatic нестабильна и находится в активной разработке, поэтому он еще не доступен на Cran. Чтобы установить, откройте подсказку R и запустите:
install.packages( " devtools " )
devtools :: install_github( " nick-ulle/rstatic " )Пакет включает в себя виньетку, которая служит введением. Чтобы получить доступ к виньетке, откройте подсказку R и запустите:
library( rstatic )
vignette( " rstatic-intro " )Смотрите список дел.