An utility for creating a functions calls diagram of a program written in tcl.
tcl
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Maxim Likhachev 8eec96a8fc Code2Graph v2.0 5 years ago
COPYING Code2Graph v2.0 5 years ago
CoC.md Code2Graph v2.0 5 years ago
README.md Code2Graph v2.0 5 years ago
code2graph Code2Graph v2.0 5 years ago
example.png Code2Graph v2.0 5 years ago
robodoc.rc Code2Graph v2.0 5 years ago

README.md

Code2Graph

   ______          __    ___   ______                 __
  / ____/___  ____/ /__ /__ \ / ____/________  ____  / /_
 / /   / __ \/ __  / _ \__/ // / __/ ___/ __ `/ __ \/ __ \
/ /___/ /_/ / /_/ /  __/ __// /_/ / /  / /_/ / /_/ / / / /
\____/\____/\__,_/\___/____/\____/_/   \__,_/ .___/_/ /_/
                       A graph of Tcl code /_/  v 2.0

Построение графа вызовов процедур для исходного кода на языке программирования Tcl.

Зависимости

Программа зависит от следующих пакетов:

  • package Tcldot - Пакет предоставляет доступ к API graphviz для создания dot-файла.
  • package struct::list - Процедуры для работы со списками.

Использование

code2graph [опции...]

  • -h - вывод справки.
  • -i - входной файл с Tcl-кодом.
  • -t - подпись изображения.
  • -o - выходной файл. По умолчанию осуществляется вывод на экран.
  • -f - формат. По умолчанию: dot. Может быть ps, mif, hpgl, plain, dot, gif, ismap.

Пример использования

Построение графа вызовов процедур для данной программы:

$ code2graph -t "Code2Graph" -i code2graph.tcl -f gif -o graph.gif

Известные проблемы

  • Программа не работает на проектах, разделенных на несколько файлов.
  • Код, помещенный в блок namespace eval name {<...>}, выполняется при загрузке в защищенный интерпретатор.
  • Команды из namespace ensemble {<...>} не учитываются.
  • Глобальные переменные не выводятся, т.к. верхний уровень не выполняется.
  • Псевдонимы разделяются на несколько записей в узлах типа record.

Пример визуалицации (frets)

Лицензия

Copyright (C) 2011-2019, Maxim Lihachev, envrm@yandex.ru

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, version 3.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.